Web应用性能优化.ppt

上传人:sh****n 文档编号:8628816 上传时间:2020-03-30 格式:PPT 页数:16 大小:204.55KB
返回 下载 相关 举报
Web应用性能优化.ppt_第1页
第1页 / 共16页
Web应用性能优化.ppt_第2页
第2页 / 共16页
Web应用性能优化.ppt_第3页
第3页 / 共16页
点击查看更多>>
资源描述
ASP NETWebApp性能优化 性能概述 性能是一项功能测试Web应用的性能关键的性能指标 性能是一项功能 设计时就考虑性能不要在事后再加入性能 在项目开发的整个过程中反复测试两种量化Web性能的方法 1 机器吞吐率 requests sec 2 响应时间 timetofirst lastbytes 测试Web性能 通过给服务器加负载来测试使用多台客户端机器加载免费MicrosoftWebApplicationStress工具测试多种场景 模拟对站点的端对端场景遍历测试单页性能需计算的数值 不同负载下的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通过将会话状态信息存储在进程 状态服务器或SQLServer数据库中来解决这个问题 StateServer 表示状态服务在一台名为myserver的机器的42424端口 默认端口 运行 要在服务器上改变端口 可编辑HKLM SYSTEM CurrentControlSet Services aspnet state注册表项中的Port值 管理员需要创建ASPState数据库 方法是运行WinDir Microsoft Net Framework Version文件夹中的InstallState sql脚本 要配置SQL服务器 可以在命令行中运行SQLServer提供的命令行工具osql exeosql S servername U user P password InstallSqlState sql 2 Viewstate优化 ViewState是什么什么地方可以不需要ViewState 1 页面控件 ascx 2 页面不回传给自身 3 无需对控件的事件处理 4 控件没有动态的或数据绑定的属性值如何禁用ViewState单个页面 每个页面 在web config中控件 ViewState属性 定义 保持页面或控件状态的视图对象 使用ViewState 每个对象都必须先序列化到ViewState中 回传时再进行反序列化 因此使用ViewState是有代价的 3 Cache优化 缓存简介页面缓存页面整体缓存局部页面缓存数据缓存 3 Cache优化 System Web Caching CacheCache的使用注意事项 Cache即时更新Cache时限指定文件或目录变更 则原Cache项不可用使用顺序注意项 privateCache cache 插入Cache cache Insert key obj dep DateTime Now AddSeconds TimeSpan Zero priority null 移除Cache cache Remove key 获取Cache中对象objectocache cache key Cache清除 IDictionaryEnumeratorenumerator cache GetEnumerator while enumerator MoveNext cache Remove enumerator Key ToString 从上下文中读缓存项datatablenewstb HttpContext Current Items cacheKey asdatatable if newstb null 从HttpRuntime Cache读缓存项newstb SiteCache Get cacheKey asdatatable if newstb null 直接从数据库从读取 并将结果缓存到HttpRuntime Cache中 cache Insert cacheKey newsSet 60 CacheItemPriority Normal 4 控件优化与选择 Html控件和服务器控件的选择 数据控件选择优先顺序 Repeater DataList DataGridIspostpack默认false 需要产生事件的时候才需设置为true 否者回发即耗资源 用户体验又差顺便提一下Ajax 优点 缺点 1 如果html控件达不到所要实现的功能 而且和一些脚本语言 如javascrpt vbscript 结合也不能实现的话 才会选择服务器控件 2 对于不需要服务器处理事件的控件 尽量选择html控件 3 选择服务器控件后 也尽量对其控件优化 如取消一些页面状态等 参见前面的Viewstate DataGrid 自带最强大的数据显示控件 虽然使用方便了 HTML冗余代码多 性能开销大 如果你想尽量基于Web标准开发 请抛弃它 DataList 比DataGrid功能少了很多 但自定义性强 特有的多行数据显示 DataGrid能实现的功能 它基本能实现 所以建议使用它 Repeater 功能最少 但自定义性强 开销最小 如果只需对数据显示 建议使用 5 返回多个记录集 不要期望GC会在你想象的时间内关掉连接 虽然最终都要销毁对象和关闭边接 尽量减少链接池 在单个数据库请求中返回多个结果集 可以减少与数据库通信的时间 使你的系统具有扩展性 也可以减少数据库服务器响应请求的工作量 根据情况将部分业务处理放在SP中 如表间操作非常频繁而业务本身较简单 减少数据库链接 访问次数 对数据的更新不需要返回结果集 建议使用ExecuteNonQuery单个值的查询使用ExecuteScalar 6 数据分页优化 Datagrid 又见Datagrid在web开发中 分页有两种方式 1 将全部数据取出再分页 2 只取你想要页的数据 DataGrid自带分页是第一种方式 在数据记录数不多时 可使用 简便 如果数据记录过大 比如10W条记录 每页100条 采用第一中方式是否明智 编写分页存储过程取数据是必要的 但是相对开发成本高 7 Ado Net对象选择 神通广大的DataSet独立好用的DataTable快速简单的DataView飞速但不断奶的DataReader 8 数据前绑定 用DataBinder eval绑定不必关心数据来源 DataReader或DataSet 不必关心数据的类型 eval会把这个数据对象转换为一个字符串 在底层绑定做了很多工作 使用了反射性能 正因为使用方便了 但却影响了数据性能当用DataSet绑定时 DataItem其实式一个DataRowView 如果绑定的是一个数据读取器 datareader 它就是一个IDataReader 因此直接转换成DataRowView的话 将会给性能带来很大提升 1 需在页面添加 2 注意字段名的大小写 要特别注意 9 存储过程优化 C Coding优化 没有最好 只有更好
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!