摘 要:本文使用静态的缓存文件又不影响网站动态功能,从而探讨提高ASP应用程序的性能,给出了实现的代码和程序修改方法。 关键词:ASP缓存;应用程序;性能
1 引言
某单位的网站发布系统是基于ASP和VBScript脚步语言开发的。网站首页是先从数据库查询最近更新的内容,然后再生成的。由于网站栏目比较多,生成每个栏目的内容都要查询一次或几次数据库,有的查询还需使用多表联接,使得服务器的负载比较大,生成首页通常所需的时间大约在320毫秒。为了提高首页的响应时间,编写了一个类,在生成首页时使用这个类,除了首次访问首页时会增加大约30毫秒时间,随后用户访问首页的时间为170毫秒左右,从而较好地提高了网站服务器的性能。
2 设计
一般而言,从内存中检索数据总要比从后端数据存储中检索数据快得多。从本地硬盘读取数据通常也比从数据库中检索数据更快。因此,可以将数据缓存在 Web 服务器的磁盘中,来提高性能。可以把首页中需要查询的内容通过Scripting.FileSystemObject 组件存储在文件中。当生成首页时,首先检查是否存在对应的缓存文件,如不存在,则从数据库中进行查询生成对应的HTML内容,在返回给用户的同时存储到缓存文件中。如存在该文件,则检查该文件的最后修改时间,如果超过了刷新时间,则重新进行查询、生成和存储;否则读取该文件的内容返回给用户。这实际是以空间换取时间的做法。
如果正确地缓存需要查询数据库的内容,那么Web服务器的性能会有显著的提高。为使缓存有效,必须保存那些经常需要重复使用的数据,且重新计算这些数据需要大的开销。需要注意的是,检索磁盘上的数据可能不一定要比从数据库检索数据更快,但使用缓存会降低数据库的负载。在高负载的情况下,这样做可大大改善总体吞吐量,特别是当缓存开销很大的查询结果(如多表联接或复合存储过程)或大的结果集时,这是非常有效的。
|