网站大量收购独家精品文档,联系QQ:2885784924

代码优化intro详解.ppt

  1. 1、本文档共24页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
课程介绍 理论 + 实验 编译原理之代码优化 考核 考试 + 考勤 +习题 为什么学习 为什么学习 时间就是金钱, 效率就是生命 购买更新硬件/性能更强的处理器不是好的解决方法 编译器不会完成所有优化任务 为什么学习 计算机硬件的升级并不能根本上提高程序性能 程序优化涉及用 Profiler 来分析代码、使用性能分析器/监视器来分析资源的使用, 提高程序性能 学习使用工具来改进程序性能 优化的重要性 减小处理器负担 用户对运行期望值高 优化并没有想象的那么费劲 优化的规则 优化之前, 需可靠/能正确运行的非优化版本(等价变化的前提) 先算法优化, 而不是通过代码优化来大幅提高系统性能(路径依赖) 注意: 优化≠最佳化 要求: 相对合理性 应考虑空间和时间上的取舍, 及二者的平衡 课程内容 应用程序的优化 性能调优的应用程序设计问题 性能调优的硬件注意事项 使用VTune性能分析器 使用VTune优化性能 使用多线程优化应用程序 分析远程应用程序性能 学习结果 分析应用程序的优化 使用采样调用关系图和计数监视器来分析应用程序 使用调优助手获取调优建议报告 使用VTune来分析线程应用程序 目标 确定应用程序优化的需求 确定应用程序优化过程 程序优化 程序的性能依赖于 源代码 算法 编译器 计算机架构 程序优化是是在给定硬件和网络资源的限制内获取应用程序最佳性能的过程 有效配置资源提高程序性能 程序优化 程序优化(代码优化) 涵义: 指对程序代码进行等价变换(指不改变程序的运行结果) 目标: 效率更高(时间 vs. 空间) 阶段层次: 中间代码(不依赖于计算机) 目标代码 范围分类: 局部/循环/全局优化 方法: 数据流分析/控制流分析/变换 程序优化的必要性 结果 提高程序性能 缩短响应时间 提高系统资源利用率 常见的程序优化类型 C/S、B/S程序 数据库程序 科学计算程序 多线程程序 程序优化类型 C/S、B/S程序 程序响应速度影响了性能, 如C 、 B端与S端的执行速度、连接的速度等 优化时考虑:确定性能降低的部分、备选方法 数据库程序 由于执行数据库事务需要大量时间而使程序速度变慢 在大容量的数据库中查找和排序记录的时间很长 优化时考虑: 每个事务激发触发器的次数 程序访问数据库的次数 程序一次访存以进行处理的记录数 程序优化类型 科学计算程序 实时系统, 如航空航天、天气预报 优化时考虑: 算法设计 编译器 操作系统 处理器架构 多线程程序 用于长时间处理和内存读写操作 优化时考虑:最佳线程数目 优化程序性能的级别 程序性能取决于: 计算机架构、程序设计和系统资源 优化的级别 系统级别 - 最高优化级别 应用程序级别 - 中级优化级别 微架构级别 - 最低级优化级别 程序优化过程 确定优化目标 遵循相应的优化方法 当完成期望级别的优化时应停止此过程 优化步骤: 收集性能数据 分析数据并确定性能问题 生成解决问题的备选方法 实施优化 测试优化 程序优化过程(1) 收集性能数据 处理器利用率 内存利用率 执行时间 工具 使用计时函数来计算执行时间 使用秒表功能来测量执行时间 使用性能分析工具 程序优化过程(2) 分析数据并确定性能问题 热点 瓶颈 瓶颈: 内存操作 内存对齐 浮点运算 系统调用 程序优化过程(3) 生成解决问题的方法: 优化内存操作 优化浮点运算 优化系统调用 程序优化过程(4) 实施优化 分割较大的循环 使用优化数据结构 尽量少使用全局数据结构 简化分支 优先放置可能性最大的分支 将判定构造放置在循环外部 程序优化过程(5) 测试优化 用优化版本计算的结果是正确的 优化版本的性能满足所需的级别 优化工具 各种优化工具有助于分析: 应用程序代码的使用率 应用程序对系统级别资源的使用率 常用工具有: Perfmon 用于Windows 操作系统如 Windows XP 用于查看系统级别资源的使用率 JProfiler 是一种 Java profiler 用于查看性能瓶颈、内存泄漏并提供有关线程问题的数据 VTune 为 Intel 公司提供的工具 用于找出各种模块或函数的系统资源利用率和执行所需的时间 宋和平 147 6283 2856 songhp@ujs.edu.cn 江苏大学软件工程系 §1 了解应用程序优化 代码优化和性能调节 APP Compiler Code Algorithm CPU RAM… 优化原则 尽可能保持与硬件无关 增加的工作量不多于15% 必须使程序性能的提高不少于20% 应该使代码修改起来毫不费力 优化级别 优化目标 侧重区域 性能改进级别 系统级别

文档评论(0)

风凰传奇 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档