《C++代码整洁之道:C++17 可持续软件开发模式实践》 —3.8 小心优化原则
【摘要】 本节书摘来自华章计算机《C++代码整洁之道:C++17 可持续软件开发模式实践》 一书中第3章,第3.8节,作者是[德]斯蒂芬·罗斯(Stephan Roth),连少华 郭发阳 陈涛 译。
3.8 小心优化原则
不成熟的优化是编程中所有问题(或者至少是大部分问题)的根源。
—Donald E. Knuth, American computer scientist [Knuth74]
我发现,开发人员只有一个模糊的想法就进行程序的优化,但他们并不确切知道性能瓶颈究竟在哪里。他们经常摆弄个别的指示,或尝试优化小的、局部的循环结构以挤出最后一点性能。我也是这些开发人员中的一员,其实这很浪费时间。
一般来讲,这些更改对性能的变化是微不足道的,通常不会出现预期的性能提升,这只会浪费宝贵的时间。相反的是,这种所谓的优化后的代码的可理解性和可维护性通常会受到严重影响。特别糟糕的是,有时在这种优化措施中,一些缺陷反而“巧妙”地被引入到了代码中。我的建议是:只要没有明确的性能要求,就避免优化。
代码的可理解性和可维护性应该是我们的第一个目标,正如我在第4章“调用开销”一节中所解释的那样,现代的编译器已经非常擅长优化代码了,每当你想优化某些代码时,想想YAGNI原则。
只有在不满足利益相关方明确要求的情况下才能采取行动。但是,你应该仔细分析影响性能的地方,不要仅凭直觉进行优化。例如,你可以使用Profiler找出软件的瓶颈所在。使用这样的工具后,开发人员常常会惊讶于影响性能的点与最初假设的位置相差甚远。
Profiler是一种动态程序分析工具。除其他常用指标外,它还测量函数调用的频率和持续时间,它收集的分析信息还可用于程序优化。
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)