ASP.NET性能最佳实践

王朝asp·作者佚名  2006-11-24
宽屏版  字体: |||超大  

根据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应用,工作进程重启 || 指示严重功能错误

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有