"under the hood"性能理解的必读C++文档?

Must-read C++ documents for "under the hood" performance understanding?

本文关键字:C++ 文档 能理解 under the hood 性能      更新时间:2023-10-16

为了准确理解在编写C++时"幕后"会发生什么,您建议使用哪些文档?

到目前为止,我有:

  • GNU C++编译器文档(我认为这会很好地了解实际情况)
  • C++ABI(?)规范

书籍:

  • C++对象模型内部
  • 迈耶斯有效级数

要想真正理解,您应该熟悉G++源代码。编译器代码会告诉你很多关于该语言的信息。

对于较低级别的理解,您应该熟悉最新的C++标准(C++11)。

我首先学习了x86汇编指令集和指令时钟计时。一旦你知道了这一点,你就知道编译器实际上在把你的代码转换成什么,你就会知道它能做什么,不能做什么。从那里,如果我对某段特定的代码感兴趣,我会从编译器中获得汇编输出,并尝试各种编码方式。多年来,我发现了一些东西。。。1) 编译器非常善于优化,甚至经常以几种不同的方式编码,最终得到相同的汇编输出,2)我经常对编译器的内联效果感到惊讶,3)我经常惊讶于有时一点点C++代码会产生大量的汇编输出。因此,当你复制多个继承C++对象时,你会意识到这是多么昂贵,当你写一些小实用程序方法来保护对象数据时,你就会意识到这个工具是多么昂贵。

在GCC的情况下使用编译到汇编程序:g++ -fverbose-asm -S,在其他编译器中使用同类开关。这几乎是"在引擎盖下"。