性能优化的三个层次
来源:互联网 发布:2000年人口普查数据 编辑:程序博客网 时间:2024/03/28 16:16
编者按:性能优化,简而言之,就是在不影响系统运行正确性的前提下,使之运行地更快,完成特定功能所需的时间更短。本文是性能优化系列文章的第一篇,主要讲解性能优化的三个方面。
性能优化有三个层次:
◇系统层次
◇算法层次
◇代码层次
系统层次关注系统的控制流程和数据流程,优化主要考虑如何减少消息传递的个数;如何使系统的负载更加均衡;如何充分利用硬件的性能和设施;如何减少系统额外开销(比如上下文切换等)。
算法层次关注算法的选择(用更高效的算法替换现有算法,而不改变其接口);现有算法的优化(时间和空间的优化);并发和锁的优化(增加任务的并行性,减小锁的开销);数据结构的设计(比如lock-free的数据结构和算法)。
代码层次关注代码优化,主要是cache相关的优化(I-cache, D-cache相关的优化);代码执行顺序的调整;编译优化选项;语言相关的优化技巧等等。
性能优化需要相关的工具支持,这些工具包括编译器的支持;CPU的支持;以及集成到代码里面的测量工具等等。这些工具主要目的是测量代码的执行时间以及相关的cache miss, cache hit等数据,这些工具可以帮助开发者定位和分析问题。
性能优化和性能设计不同。性能设计贯穿于设计,编码,测试的整个环节,是产品生命周期的第一个阶段;而性能优化,通常是在现有系统和代码基础上所做的改进,属于产品生命周期的后续几个阶段(假设产品有多个生命周期)。性能优化不是重新设计,性能优化是以现有的产品和代码为基础的,而不是推倒重来。性能优化的方法和技巧可以指导性能设计,但两者的方法和技巧不能等同。两者关注的对象不同。性能设计是从正向考虑问题:如何设计出高效,高性能的系统;而性能优化是从反向考虑问题:在出现性能问题时,如何定位和优化性能。性能设计考验的是开发者正向建设的能力,而性能优化考验的是开发者反向修复的能力。两者可以互补。
- 性能优化的三个层次
- Java 性能优化的三个层次
- 性能优化的三个维度
- mysql性能优化的四个层次
- 识别的三个层次
- 开发人员的三个层次
- 学习的三个层次
- 认知的三个层次
- 人工智能的三个层次
- 程序性能优化的三个层面
- android-提供布局的整体性能-优化布局层次结构
- 业务流程管理的三个层次
- 人生追求的三个层次
- 重构的三个层次
- 商业智能的三个层次
- 学习开发的三个层次
- 玩游戏的三个层次
- OSGi框架的三个层次
- 最简单的cxf3.1的helloword入门例子
- 剖析微商到微伤的全过程
- POJ之路6--1005,6
- 第十三周 阅读程序 运用抽象类后的修改(3)
- BZOJ 4073 Wf2014 Buffed Buffet 斜率优化
- 性能优化的三个层次
- java okhttp 网络请求
- 鹿鼎记随笔
- 10817 - Headmaster's Headache
- NVSRAM:不再需要电池的非易失性存储方案
- Winform控件之分组类控件
- 计算几何-UESTC 484 Division
- 类handler
- 九度oj 1349 数字在排序数组中出现的次数