性能
C++,作为最晦涩、最难掌握的主流编程语言,一向是容易上手,却很难写好。而这难写好的部分中,除了代码风格等略微抽象的部分,最难也最容易疏忽的部分则是性能了。根据经典的二八原则,通常20%左右的代码消耗了80%左右的性能。然而,用户日常接触到的功能、或者在日常使用的场景下,性能是可以满足的,因此这往往造成程序员的忽视并埋下了隐患。
通常情况下,一旦遇到性能问题,那将是比功能问题更棘手、更难解决的。
C++,作为经常和硬件直接打交道的高级语言,性能问题可谓是重灾区。本系列文章,将结合理论和实践,深度剖析典型的性能问题和陷阱。
在上一篇性能专题的文章(点击可跳转上期文章)中,我们详细地介绍了C++代码中的性能杀手【拷贝】,并提供了几类具有针对性的应对措施。然而作为需要时刻考虑硬件条件的编程语言,如果你以为避免了不必要的构造和拷贝,就可以拥有极致的性能的话,那就大错特错了。
让我们来看一个与拷贝无关,但是又存在明显性能问题的例子。
举例
CPU Cache
首先我们需要介绍一下什么是CPU Cache。
在我们写代码的时候,有3个