ASP.NET性能最佳实践_[Asp.Net教程]
					根据MSDN webcast 整理 
逻辑/物理设计实践
推荐 : 使用逻辑三层模型 
页面(.aspx)和用户控件(.ascs) 
可重用类型(组件)放在\bin目录下 
数据放在SQL数据库中 
推荐 : 为Web Farm设计 
不要假定访问者永远会回到同一服务器 
注意静态变量和应用状态 
Web Farm会话状态 
推荐 : 用同一个进程 
应避免(可能时): 
对XML Web服务的同步调用 
通过DCOM的远程调用 
使用XML Web 服务 : 
因特网上应用之间的通讯 
不要用于应用内通讯 
推荐 : 使用ISA服务器,当需要DMZ安全域时 : 
只允许通过ISA访问 
ISA隧道通过DMZ到达ASP.NET 
减少进程转换 
语言/代码建议 
避免使用晚绑定 
<%@ Page Language = "VB" Explicit = "true" %>要求声明所有变量类型,依然允许晚绑定 
<%@ Page Language = "VB" strict = "true" %>禁止使用任何晚绑定 
COM交互建议 
尽量少使用COM,而使用托管的组件 
数据建议 
将数据存储在SQL Server中 
选择合适的数据访问方式 : OLEDB/SQL client/ODBC 
合理选择DataSet和DataReader 进行数据访问 
状态管理 
选择合适的方式存放Session : Inproc/StateServer/database 
使用简单数据类型 
避免在Session中保存STA的COM对象 
如果不需要Session,则禁用它 : EnableSessionState = "false" 
如果可能,可使用readonly特性 : EnableSessionState = "Readonly" 
哪果不需要ViewState则禁用它, EnableViewState = false 
最小化ViewState中的数据 
查看ViewState的大小查看HTML输出源码或者启用Trace 
使用缓存 
页面缓存 
部分页面缓存 
Cache对象 
数据缓存 
WebService缓存 
量化WEB性能的方法: 机器吞吐率响应时间通过给服务器加负载来测试 
使用多台客户端机器加载 
免费Microsoft Web Application Stress 
测试多种场景 
模拟对站点的端对端场景遍历 
测试单页性能 
需要计算的数值 
不同负载下的Request/sex(100,250,500,750,1000等同时访问的客户) 
辨明在可接受TTFB/TTLB响应时间内的最大客户负载 
关键的性能计数器 
处理器,CPU%使用率 || 低数值 = 受阴或者锁竞争 
ASP.NET,入列请求数 || 线性增长意味着服务器已满负荷 
ASP.NET应用,每秒请求数||动态吞吐量(应当一致) 
ASP.NET应用,总错误数 || 指示功能错误(应当是0) 
ASP.NET应用,工作进程重启 || 指示严重功能错误