精华区 [关闭][返回]

当前位置:月光软件>>讨论区精华>>〖软件开发〗>>● ASP>>★ASP的技巧★>>Application, Session, Cookies>>缓存和session 机制对页面访问速度的影响

主题:缓存和session 机制对页面访问速度的影响
发信人: bjadai()
整理人: dongbao(2002-04-19 16:53:38), 站内信件

仅对于每秒访问数百页面和同时有上千个并发。
缓存记录集
在正常情况下,你可以将ADO记录集本身缓存在Application或Session范围,但必
须满足两个条件: .ADO必须被标记为自由线程模型(Free-threaded) .和必须
使用无连接记录集如果不能满足上面两个条件,千万不要缓存记录集。当ADO组件
被标记为自由线程模型时,ADO记录集对象可以安全地存储。可以用Makfre15.ba
t,一般是放在\\Program Files\Common\System\ADO这个文件夹里,将ADO组件标
记为自由线程模型。
缓存大数组
缓存大数组不是一个好方法。在访问数组中的任何元素之前,脚本解释器都需要
生成一个临时的副本。如果你缓存了一个100,000个字符串元素的数组,在访问数
组中任何一个字符串之前,ASP解释器首先必须复制所有的100,000个数据到一个
临时数组中。在这种情况下,开发一个组件来储存数据或是使用词典(Dictioar
y)对象更为合适一点。不过,也不要因小失大,数组对象的的查找速度会更快一
点。索引一个词典比索引一个数组慢。可以因情况而宜,选择合适的数据结构。

不要缓存数据库连接
缓存ADO Connection非常不好。如果Connection对象被存储在Session对象中,就
要为每个用户创建一个数据库连接,这就消减了IIS内建的数据库连接池的作用,
并且增大了Web服务器和数据库服务器的压力。
所以,(1)能缓存的就缓存,能在内存中内存的不要在硬盘上内存;而他是一个
典型的以空间换取时间的交易,装满过期数据的缓冲区会浪费内存。所以必须缓
冲那些常用和计算复杂的数据,和不经常变化的数据,比如,下拉列表框、引用
表、小段DHTML代码,XML字符串、菜单项和站点配置变量(包括数据源名字(DS
N),IP地址和Web路径)都是很好的对象。(2)注意,可以缓存数据本身,还可
以缓存数据的表现。如果一个ASP页面很少变化,并且缓存代价比较高(比如,产
品列表),可以考虑用静态HTML页面。(3)对于数据库连接,还是不用Seesion
对象的好,可以缓存连接字符串;但在global.asa中可以缓存其他对象与变量(
4) 对于对于没有实现负载均衡的条件下,可以缓存无连接ADO记录集;(5)对
于其他ADO对象必须缓存的,可以调用Makfre15.bat,将ADO组件标记为自由线程
模型;(6)其他COM对象最好不缓存。

--
※ 来源:.月光程序代码网 http://www.moon-soft.com.[FROM: 210.74.189.50]

[关闭][返回]






转载请注明:转载自 月光程序代码网 [ http://www.moon-soft.com ]