分享
 
 
 

[2004-04-10] ASP.NET性能优化

王朝asp·作者佚名  2006-01-31
窄屏简体版  字體: |||超大  

衡量Web性能的方法

l 衡量web服务器性能的唯一方式是对服务器进行压力测试(stress testing)

1. 自动压力测试工具是衡量的唯一方式

2. 浏览器的点击刷新并不能作为痕量手段……

l 收集多个典型应用场景方案:

1. 在应用车工女婿执行过程中模拟典型事物处理的过程

2. 痕量常用的单个页面的性能(热点)

3. 确定个场景及个页面的使用率

l 通过测试找出系统的新能指标:

1. 服务器的处理能力

2. 确定适合可接受TTFB/TTLB响应时间范围的可支持的最大客户端负载(并发用户)

性能测试工具

l 微软Web Application Stress Tool

1. 可免费下载(10MB),适用于XP、2000、2003

2. http://www.microsoft.com/technet/treeview/default.aspx?url=/technet/itsolutions/intranet/downloads/webstres.asp

l 微软应用程序中心测试工具(Microsoft Application Center Test)

1. 作为VS.NET Enterprise 的一部分提供给客户

2. 启用更丰富的脚本及报告

主要的性能测试观测项PerfMon Counters

l Processor,CPU % Utilization

Low numbers = blocking or lock contention

l ASP.NET,Requests In Application Queue

出现线型增长时表示服务器已达满负荷

l ASP.NET,Applications,Requests/Sec

动态吞吐量(应保持一致、无大的波动)

l ASP.NET,Applications,Errors Total

预示着功能级错误(应为0)

l ASP.NET App/Worker Process Restarts

表示有严重错误编程级错误(应为0)

压力测试环境的注意事项

l 在独立与Web服务器及应用服务器的机器上运行压力测试工具

1. 否则工具将超出服务器CPU的最大范围

2. 对于繁重的负载使用多个客户端机器

l 对测试进行配置,以模拟不同的客户端带宽级别

1. 特定用于衡量56K拨号

l 消除应用之外的任何瓶刭:

1. 网络、客户端等

逻辑设计

l 建议:采用3层逻辑模型

1. Pages and User Controls UI

2. Business and Data Access classes in \bin dir

3. Data withwin a SQL Database via SPROCs

l 设计系统时要考虑到Scale-Out的情形

1. 不要假设客户端的请求

l 永远会返回到同一机器

使用最佳的Data Provider

l ADO.NET 可支持多个Provider:

1. System.Data.SqlClient

2. System.Data.OracleClient

3. System.Data.OleDb

4. System.Data.Odbc

l 所有Provider的编程模型相同

1. 但是性能方面存在明显差异

l 建议:使用最佳

1. 在访问MSDE/SQL 是始终使用SqlClient

2. 在访问Oracle时始终使用OracleClient

DataReader vs.DataSets

l DataReader

1. 对查询的结果提供了单向读取的操作

2. 轻量快速-但在Reader关闭之前数据库始终处于连接状态

l DataSet

1. 非连接的数据访问方式

2. 内部使用DataReader用户获取数据

3. 在完成DataSet的获取后会自动关闭DataReader

l Which is better?

1. 依赖于你的应用

2. 原则上在Middle_Tier设计到大量数据处理或进行离线的数据访问时建议使用DataSet

连接池

l ADO.NET拥有内置的连接迟

1. 自动缓寸/重新使用连接

2. 不必为此编写任何代码

l 代码建议

1. “在后期打开代码中的连接,然后在早期将其关闭”

2. 切无长时间保持连接状态 – 切无尝试构建你自己的“智能”连接池逻辑

3. 完成后应立即显示地关闭数据库连接,以将其返回致池中

l 优化提示:

1. 不同的连接字符串可以生成多个不同的连接池

2. 在Web.Config中存储单个连接字符串

3. 使用ConfigurationSettings.AppSettings以在运行时采用编程形式对其进行访问

4. 观察”.NET CLR数据“性能计数器,以变对由ADP.NET维护的连接池数量保持

使用存储过程

l 建议将SPROC用于数据存取

1. 通过DBA进行更轻松的性能调试

2. 通过使用数据库事务处理避免出现分布事务成本

3. 有助于防止SQL注入攻击

4. 有助与消除应用与数据库反复调用的成本

服务器控件

l 对性能优化而言有两点需要注意:

1. ViewState

2. Number of controls generated(especially for lists)

ViewState管理

l ASP.NET controls能够维护页面Control元素的状态:

1. 状态以”viewstate” hidden field进行传递

l 负面影响:

1. 增加网络负荷(both on render and postback)

2. 额外的服务器性能消耗(serialize values to/from viewstate)

l ViewState灵活性:

1. 页面级(Can disable viewstate entirely for a page)

2. 控件级(Can disable viewstate usage on a per control basis)

l 建议

1. 认真审核该功能的使用

2. 若不使用PostBack功能,在页面级屏蔽ViewState

3. PostBack时没次都重新生成控件,请对控件级的ViewState屏蔽

4. 使用<%@ Page Trace=”true”%>跟踪ViewState的大小

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有