程序性能分析
2015-10-03 14:40
246 查看
程序性能分析
设计层面
1.问题定义:良好的问题定义可以避免用户对问题需求的过高估计,良好的错误恢复能力会使编译器运行的稍慢一些,但是通常会由于减少了总的编译次数而缩短总的时间。
2.系统结构:将大型系统分解成模块也许是决定其性能的最重要的单个因数。在构建出整个系统的构架以后,设计者需要完成简单的粗略估算,以确保程序的性能在正确的范围之内。
3.算法和数据结构:
4.代码调优
5.系统软件:有时候改变系统所基于的软件比改变系统本身更容易
6.硬件:
原理
1.如果仅需要较小的加速,就对效果最佳的层面做改进。
决定在某一特定层面着手之前,请先考虑一下所有可能的设计层面,然后选择性价比最高的哪一个,投入最小的精力就可以获得最大加速系数的那个设计层面
2.如果需要较大的加速,就对多个层面做改进。
如果需要大幅加速,必须从各个不同的方向对问题进行深入研究,这通常需要付出巨大的努力。如果在任一设计层面上的改进都独立于其他层面的设计,那么各个层面上的加速系数可以相乘。
设计层面
1.问题定义:良好的问题定义可以避免用户对问题需求的过高估计,良好的错误恢复能力会使编译器运行的稍慢一些,但是通常会由于减少了总的编译次数而缩短总的时间。
2.系统结构:将大型系统分解成模块也许是决定其性能的最重要的单个因数。在构建出整个系统的构架以后,设计者需要完成简单的粗略估算,以确保程序的性能在正确的范围之内。
3.算法和数据结构:
4.代码调优
5.系统软件:有时候改变系统所基于的软件比改变系统本身更容易
6.硬件:
原理
1.如果仅需要较小的加速,就对效果最佳的层面做改进。
决定在某一特定层面着手之前,请先考虑一下所有可能的设计层面,然后选择性价比最高的哪一个,投入最小的精力就可以获得最大加速系数的那个设计层面
2.如果需要较大的加速,就对多个层面做改进。
如果需要大幅加速,必须从各个不同的方向对问题进行深入研究,这通常需要付出巨大的努力。如果在任一设计层面上的改进都独立于其他层面的设计,那么各个层面上的加速系数可以相乘。
相关文章推荐
- MapIterator和MapEnumerator区别
- Android Material Design Library系列教程(五)
- 基数排序
- iOS 多语言支持,应用程序国际化 xcode4.5
- 关于hibernate空指针异常的几个问题
- USACO 2.3 Controlling Companies (DFS)
- 最容易理解的java数组位移(献给我的第一次博客)
- 关于wxwidgets图形界面的关闭窗口的按钮无效的解决办法
- Fragment详解
- 组合数与错排数求解方法探析
- 条款21:static对象引起的多线程安全性
- C#程序如何实现设置系统WIFI共享
- winform快速开发平台 -> 基础组件之分页控件
- C++学习(二)-继承与派生(1)
- 项目周期的制定思想
- Mysql 数据库外键设置方式
- POJ 1321 棋盘问题
- c++的引用(二)
- 再谈中间人攻击
- iOS-单例模式(懒汉式和饿汉式)和GCD实现