您现在的位置: 无忧电子商务网 >> 信息学院 >> 程序开发 >> asp >> 正文

提高ASP性能的22个技巧(一)

作者:佚名    信息学院来源:整理    点击数:    更新时间:2008-1-24 我要参与讨论

  othing  '第二步 

  技巧6:正确地使用Session对象 

  我们已经提到了在Application和Session中缓存数据的好处,下面我们将说一些 
Session对象的缺点。在繁忙的站点上使用Session有一些不利的地方。繁忙是指这个站点每秒钟要处理数以百计的页面请求或同时连接数以千计的并发用户。这个技巧对那些必须要水平伸缩的站点--就是说,这些站点用多个服务器来实现负载平衡或容错--非常重要。对小的站点,如公司内网,Session相对与他消耗的资源来说,还是值得一用的。 

  ASP自动为每个访问Web服务器的拥护创建一个Session对象。每个Session大约消耗10K的资源,并使所有的请求都慢了一点。这个Session在超时周期内一直存在,这个周期一般是20分钟。对于Session来说最大的问题不是性能而是伸缩能力。Session不是跨Web服务器的;一旦一个Session在某个服务器上创建,它的数据都保存在那儿。 
  这意味着如果你要在多个Web服务器环境中使用Session,你必须设计一套能使用户总是访问它的Session对象所在的Web服务器的策略;即将一个用户粘到一个Web服务器上。如果Web服务器崩溃,因为Session不是永久保存在磁盘上的饿,所以全部“粘” 
  在其上的用户的Session状态都将丢失。实现“粘Session(sticky session)”的策略包括硬件和软件方案,如Windows 2000 Advanced Server中的Network Load Balancing和Cisco的Local Director。当然,这些方案并不完美,都要损失一些可伸缩性。Application对象也不是跨服务器的,如果你想在多服务器间共享和更新Application数据,你必须使用一个后台数据库。但无论如何,只读Application数据在多服务器环境中还是十分有用的。 

  绝大多数任务优先(mission-critical)的站点都想在至少两台Web服务器上发布--如果没有比延长正常运行时间更重要的理由的话。因此,在设计阶段,你就要实现“粘Session”,或是简单地避免Session和其他将用户状态保存在一个独立Web服务器上的状态管理技术。 

  如果不使用Session,就将它们关闭;可以通过Internet Service Manager(参看ISM文档)关闭你的应用的Session功能。如果决定使用Session,就要用一些方法将他们对性能的影响减到最小。可以将不需要Session的内容(如帮助窗口等)移到一个的关闭了Session的ASP应用中。如果某个单一页面不需要Session,可以将下面的语句放在页面的顶部来禁止Session功能: 

<% @EnableSessionState=False %> 

  使用该语句还有一个原因是Session在帧中会产生一个有趣的问题。ASP保证任何时候一个会话只有一个请求,这就导致如果浏览器同时请求多个页面,同一时刻将只有一个ASP请求能够访问Session;这避免了访问Session对象时产生的多线程问题;但很不幸,一个帧中的多个页面只能顺序的生成,一个接着一个,而不是兵法。用户可能会为多个帧等待较长时间。所以如果帧中的某个页面没有使用Session,就在页面顶部放置<% @Enabl

上一页  [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] 下一页

在google里搜索更多提高ASP性能的22个技巧(一)

Google
Web www.51ec.org
【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
我来说两句 对此文章发表了评论
  昵 称: *必填    ·注册用户·
  评 分: 1分 2分 3分 4分 5分     严禁发表危害国家安全、政治、黄色淫秽等内容的评论,用户需对自己在使用本网站服务过程中的行为承担法律责任。本站管理员有权保留或删除评论内容,评论内容只代表机友个人观点,与本网站立场无关。  
评 论
内 容

 
评论列表 (最新 评论仅限网友观点!)

供求信息




| 设为首页 | 加入收藏 | 关于我们 | 广告服务 | 联系方式 | 友情链接 | 版权申明