应用程序性能调节-20050128.ppt

  1. 1、本文档共28页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
应用程序优化 讲师:孙魏 微软MSDN讲师 目标 识别性能调节中的主要任务 介绍一些重要的性能调节名词 议程 应用程序优化方法论 应用程序优化工具 .NET应用程序优化 原则 在任意平台上编写高性能代码的基本原则为: 设置性能目标 测量,测量,再测量 了解应用程序的目标硬件和软件平台 应用程序优化方法论 性能周期概览 性能周期 什么时候开始 性能提高 什么时候停止 深入思考 性能周期 什么时候开始 用户的需求? 客户的需求? 将性能需求放入到需求文档中 在产品生存周期的任何一个部分都要考虑并执行 例外: 推迟代码调节,直到简单、可读的为优化的一个用程序版本存在。 效率VS性能 何时结束 是否是架构的最大极限 确认你知道如何计算理论 性能需求是否满足 完成前,增加优化的范围 深入思考 高质量的代码 可移植性 可读性 可维护性 可靠性 收集性能数据 计时器 获取测试时间周期 精确、低开销 使用工具 性能监视器 Intel Vtune 相关负载 一个好的工作负载需要具有如下特性 可测量性 可再生性 静态 有代表性 分析数据并识别问题 当前性能基线 考察热点 识别瓶颈 计算潜在的最大性能 考察热点 热点:应用程序或系统活动频繁的地方 通常是一组循环 Amdahl’s Law Amdahl’s Law 在计算机编程的并行处理程序中,少数必需顺序执行的指令是影响性能的一个要素,即使增加新的处理器也不能改善运行速度。这就是Amdahl法则。 额外考虑的内容 利用率、效率、吞吐量、延时 瓶颈 I/O、memory、CPU MIPS/FLOPS/CPI 并行,并发性 优化设计层面 算法和数据结构 代码调节 系统软件 硬件 算法和数据结构 数据视图 寻找公开的的算法 数据层面 确保数据压缩并尽可能面向机器,达到优化的最好效果 数据压缩 分割不需要的数据 面向机器的数据视图 (没有浪费过多的空间) 代码调节 汇编 指令集 多线程 转换循环 编译器 函数库 代码调节 并行处理 多机并行处理(群集处理) 单机并行处理 SMP多处理器 议程 应用程序优化方法论 应用程序优化工具 .NET应用程序优化 应用程序优化工具 性能计数器 CLR Profiler Compuware DevPartner Studio Professional Edition 7.0 Intel VTune Performance Analyzer 7.1 Compuware DevPartner Profiler Community Edition 议程 应用程序优化方法论 应用程序优化工具 .NET应用程序优化 .NET应用程序优化 字符串处理性能 垃圾收集 托管代码和CLR JIT 值类型 异常处理 线程和同步 安全性 总结 应用程序优化方法论 应用程序优化工具 .NET应用程序优化 参考文章 Dowd, Kevin, Severance, Charles, “High Performance Computing,” OReilly, 1993 Pasquale Armenise, “A Structured Approach to Program Optimization,” IEEE Trans on Software Engineering, Feb 1989,pg. 101-108 Bentley, Jon, “Programming Pearls,” ACM Press, 2000 Intel Solution Center Engineers, “ASC BootCamp Foils,” 2001 /china/MSDN/library/netFramework/netframework/NFhighperfmanagedapps.mspx /china/MSDN/library/netFramework/netframework/NFdotnetgcbasics.mspx /china/MSDN/library/archives/library/dndotnet/html/vbnstrcatn.asp * 分析数据找到问题 收集性能数据 找到解决问题的办法 实现 测试 开始 为了性能,聪明的做法是放弃代码的质量 “We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil.” Donald Knuth 开发维护困难 开发维护简单

文档评论(0)

5566www + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:6122115144000002

1亿VIP精品文档

相关文档