如何写出优秀的ASP应用 (2)

发表于:2007-06-30来源:作者:点击数: 标签:
部件 . 性能 . 伸缩性 . 分离商务逻辑和页面表现 . 被ASP或其他环境重用 . 事务处理 . 类型 安全 . 存取操作系统特性 . 保护知识产权 . 在下列情况下使用Server.CreateObject: . MTS事务处理 . 上下文安全性 . ASP内部部件 . OnStartPage、OnEndPage . 使用
     部件
  
  . 性能
  . 伸缩性
  . 分离商务逻辑和页面表现
  . 被ASP或其他环境重用
  . 事务处理
  . 类型安全
  . 存取操作系统特性
  . 保护知识产权
  . 在下列情况下使用Server.CreateObject:
  . MTS事务处理
  . 上下文安全性
  . ASP内部部件
  . OnStartPage、OnEndPage
  . 使用<Object RunAt=server>延迟对象初始化
  . 是否保存到Session或者Application变量中
  
  性能
  
  . Response缓冲:Response.Buffer=True
  . 关闭Connection并:set Connection=Nothing
  . 使用局部变量
  . 用<Object >代替Server.CreateObject
  . 不要使用Session和Application变量
  . 不要将COM对象存储在Session或者Application变量中
  . 关闭脚本调试
  . 避免重复的字符串相加
  . 在费时的页面顶端使用Response.IsClientConnected
  . 使用MSMQ
  . 不要在Session或者Application中存储大数组
  . 不要ReDim 数组
  . 将集合类型的对象赋给临时变量
  . 减小微处理器的最大线程数(运行regedt32,在HKEY_LOCAL_MACHINE\SYSTEM\ CurrentControlSet\Services\w3SVC\ASP\Parameters,增加ProcessorThreadMax,减小这个值,看看性能的变化;或者增大这个值。)
  . 设置AspScriptEngineCacheMax,使它等于ProcessorThreadMax*CPU个数。缺省的是30;(在系统路径下:\system32\.netsrv/adminisamples下,键入adsutil.vbs,设置/w3svc/AspScriptEngineCacheMax);
  . 减少Session.Timeout;
  . 在MMC中,设置ASP应用程序缓冲为有效。
  
  把某些工作交给客户端:
  
  . CSS、DHTML
  . XML
  . RDS
  . Remote Scripting
  . Xmlhttp
  . 客户端验证
  . 减小文件大小
  . 尽可能避免https和SSL
  . 使用Response.End测试性能
  
  数据库
  
  . 减少数据库存取访问;
  . 缓存变换后的结果;
  . 使用ODBC连接池和OLEDB资源池;
  . 使用系统DSN或者非DSN,不要使用DSN或者文件DSN;
  . 使ADO运行在双线程模式(Both-threaded):makefre.bat;
  . 使用ADO的Field对象;
  . GetString或者GetRows比较快;
  . RDS和XML把负载嫁到客户端;
  . 不要使用Select *,把字段写出来;
  . 尽量使用SQ. Server 7,不要使用Aclearcase/" target="_blank" >ccess;
  . 使用SQ. Server的特性:存储过程、Job、Join、sort、group
  . 使用SQ. Analysis,优化SQL的性能
  . 使用索引
  . 本地使用Name-pipes,远程使用Sockets
  . 准确地指定Command Type
  
  IIS 5的新特性
  
  . 可靠的重新启动
  . ASP性能提高
  . Server.Transfer比Server.Redirect更好
  . Server.Execute
  . Server.GetLastError
  
  

原文转自:http://www.ltesting.net