C++核心准则Per.1,2,3,4 慎重地优化代码

Per.1: Don't optimize without reason

Per.1:没有明确理由不要进行优化

 

Reason(原因)

If there is no need for optimization, the main result of the effort will be more errors and higher maintenance costs.

如果没有优化的需求,这种努力的最大结果就是更多的错误和更高维护成本。

 

Note(注意)

Some people optimize out of habit or because it's fun.

有些人只是处于习惯或兴趣进行优化。

 

Per.2: Don't optimize prematurely

Per.2:不要过早优化代码

 

Reason(原因)

Elaborately optimized code is usually larger and harder to change than unoptimized code.

耗费精力优化的代码通常比未经有优化的代码更大,更难修改。

 

Per.3: Don't optimize something that's not performance critical

Per.3:不要优化性能要求不高的代码

 

Reason(原因)

Optimizing a non-performance-critical part of a program has no effect on system performance.

优化性能要求不高的代码对系统性能没有帮助。

 

Note(注意)

If your program spends most of its time waiting for the web or for a human, optimization of in-memory computation is probably useless.

Put another way: If your program spends 4% of its processing time doing computation A and 40% of its time doing computation B, a 50% improvement on A is only as impactful as a 5% improvement on B. (If you don't even know how much time is spent on A or B, see Per.1 and Per.2.)

如果你的程序花费大量时间拥堵等待网页或者用户输入,优化内存内的计算性能很可能不会有什么效果。采用另外的路线:如果你的程序如果你的程序花费4%的CPU时间由于计算A,而40%的CPU时间用用户计算B,将A的性能提高50%其效果只相当于B的性能提高5%。(如果你甚至不知道A和B消耗多少CPU时间,参见Per.1和Per.2)

 

原文链接

https://github.com/isocpp/CppCoreGuidelines/blob/master/CppCoreGuidelines.md#per1-dont-optimize-without-reason

 


 

新书介绍

以下是本人3月份出版的新书,拜托多多关注!

 

本书利用Python 的标准GUI 工具包tkinter,通过可执行的示例对23 个设计模式逐个进行说明。这样一方面可以使读者了解真实的软件开发工作中每个设计模式的运用场景和想要解决的问题;另一方面通过对这些问题的解决过程进行说明,让读者明白在编写代码时如何判断使用设计模式的利弊,并合理运用设计模式。

对设计模式感兴趣而且希望随学随用的读者通过本书可以快速跨越从理解到运用的门槛;希望学习Python GUI 编程的读者可以将本书中的示例作为设计和开发的参考;使用Python 语言进行图像分析、数据处理工作的读者可以直接以本书中的示例为基础,迅速构建自己的系统架构。

 

觉得本文有帮助?欢迎点赞并分享给更多的人。

阅读更多更新文章,请关注微信公众号【面向对象思考】

你可能感兴趣的:(C++,C++,核心准则,优化)