- 1、本文档共16页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
ASP.NET WebApp性能优化 性能概述 性能是一项功能 测试Web应用的性能 关键的性能指标 性能是一项功能 设计时就考虑性能 不要在事后再加入性能! 在项目开发的整个过程中反复测试 两种量化Web性能的方法: 1) 机器吞吐率 (requests/sec) 2) 响应时间 (time to first/last bytes) 测试Web 性能 通过给服务器加负载来测试 使用多台客户端机器加载 免费Microsoft Web Application Stress 工具 测试多种场景: 模拟对站点的端对端场景遍历 测试单页性能 需计算的数值: 不同负载下的Request/sec (100, 250, 500, 750, 1000等等同时访问的客户) 辨明在可接受TTFB/TTLB 响应时间内的最大客户负载 关键的性能指标 处理器, CPU % 使用率 低数值 = 受阻或者锁竞争 ASP.NET, 入列请求数 线性增长意味着服务器已满负荷 ASP.NET 应用, 每秒请求数 动态吞吐量 (应当一致) ASP.NET 应用, 总错误数 指示功能错误 (应当是0) ASP.NET 应用, 工作进程重启 指示严重功能错误 常用的优化措施 1.会话状态的恰当选择 2.Viewstate优化 3.Cache优化 4.控件优化与选择 5.返回多个记录集 6.数据分页优化 7.Ado.Net对象选择 8.数据前绑定 9.存储过程优化,C# Coding优化 1.会话状态的恰当选择 ASP.NET通过将会话状态信息存储在进程、状态服务器或SQL Server数据库中来解决这个问题。 sessionState mode=InProc cookieless=true timeout=20/ sessionState mode=StateServer stateConnectionString=tcpip=myserver:42424 cookieless=false timeout=20 / sessionState mode=sqlserver sqlConnectionString=data source=; userid=sa; password= cookieless=false timeout=20 / StateServer :表示状态服务在一台名为myserver的机器的42424端口(默认端口)运行。 要在服务器上改变端口,可编辑HKLM\SYSTEM\CurrentControlSet\Services\aspnet_state注册表项中的Port值。 管理员需要创建ASPState数据库,方法是运行 WinDir\Microsoft.Net\Framework\Version文件夹中的InstallState.sql脚本。 要配置SQL服务器,可以在命令行中运行SQL Server 提供的命令行工具osql.exe osql -S [ server name] -U [user] -P [password] InstallSqlState.sql 2.Viewstate优化 ViewState是什么 什么地方可以不需要ViewState (1)页面控件 (.ascx) (2)页面不回传给自身。 (3)无需对控件的事件处理。 (4)控件没有动态的或数据绑定的属性值 如何禁用ViewState 单个页面:%@ Page EnableViewState=False % 每个页面:在 web.config 中 Pages EnableViewState=false / 控件:ViewState属性 定义:保持页面或控件状态的视图对象。 --使用ViewState ,每个对象都必须先序列化到 ViewState 中,回传时再进行反序列化,因此使用 ViewState是有代价的。 3.Cache优化 缓存简介 页面缓存 页面整体缓存 局部页面缓存 数据缓存 3.Cache优化 System.Web.Caching :Cache Cache的使用 注意事项: Cache即时更新 Cache时限 指定文件或目录变更,则原Cache项不可用 使用顺序注意项 private Cache _cache; 插入Cache: _cache.Insert(key, obj, dep, DateTime.Now.AddSeconds(), TimeSpan.Zero, priority, null); 移除Cache: _cache.Remove(key); 获取Cache中对象 object ocache=_cache[key]; Cache清除: IDictionaryEnumerator enumer
文档评论(0)