《代码大全》阅读笔记-25-代码调整策略
在讨论编程的时候,没有“可能”一词的位置。——Tacey
如果对代码调整能否有助于提高某个程序的性能心存疑虑,按照以下的步
骤去做:
- 用设计良好的代码来开发软件,从而使程序易于理解和修改。
- 如果程序性能很差。
- a.保存代码的可运行版本,这样你才能回到“最近的已知正常状态”;
- b.对系统进行分析测量,找出热点;
- c.判断性能拙劣是否源于设计、数据类型或算法上的缺陷,确定是否应该做代码调整,如果不是,请跳回到第一步;
- d.对步骤c屮所确定的瓶颈代码进行调整;
- e.每次调整后都对性能提升进行测量;
- f.如果调整没有改进代码的性能,就恢复到步骤a保存的代码(通常而言,超过一半的调整尝试都只能稍微改善性能其至造成性能恶化)。
- 重复步骤2。
核对表(代码调整策略)
程序整体性能
- 你是否考虑通过修改需求来提高性能
- 你是否考虑通过修改程序的设计来提高性能?
- 你是否考虑通过修改类的设计来提高性能
- 你是否考虑过减少程序同操作系统的交互从而提高性能?
- 是否考虑过避免I/O操作以提高性能?
- 是否考虑使用编译型语言替代解释型语言以提高性能?
- 是否考虑过使用编译器优化选项来提髙性能?
- 是否考虑过使用不同的硬件來提高性能?
- 是否仅仅将代码调整看做是解决问题的最后一招?
代码调整方法
- 在开始调整代码之前,程序是完全正确的么?
- 在调整之前是否测量过性能瓶颈在什么地方?
- 是否记录了每一次修改所产生的效果?
- 如果没有带来预期的性能提高,你是否放弃了所做的代码调整改变?
- 你是否对每一个性能瓶颈进行不止一次的修改尝试一一也就是说,你是在反复进行代码调整么?
要点
- 性能只是软件整体质量的一个方面,通常不是最重要的。精细的代码调整也只是实现整体性能的一种方法,通常也不是决定性的。相对于代码本身的效率而言,程序的架构、细节设计以及数据结构和算法选对程序的运行速度和资源占用的影响通常会更人。
- 定量测量是实现性能最优化的关键。定量测最需要找出能真正决定程序性能的部分,在修改之后,应当通过重复测量来明确修改是提高还是降低了软件的性能。
- 绝大多数的程序都有那么一小部分代码耗费了绝大部分的运行时间。如果没有测量,你不会知道是哪一部分代码。
- 代码调整需要反复尝试,这样才能获得理想的性能提髙。
- 为性能优化工作做好准备的最佳方式就是在最初阶段编写清晰的代码,从而使代码在后续丄作中易于理解和修改。
还真有人点开啊🤣随意随意😂