"under the hood"性能理解的必读C++文档?
Must-read C++ documents for "under the hood" performance understanding?
为了准确理解在编写C++时"幕后"会发生什么,您建议使用哪些文档?
到目前为止,我有:
- GNU C++编译器文档(我认为这会很好地了解实际情况)
- C++ABI(?)规范
书籍:
- C++对象模型内部
- 迈耶斯有效级数
要想真正理解,您应该熟悉G++源代码。编译器代码会告诉你很多关于该语言的信息。
对于较低级别的理解,您应该熟悉最新的C++标准(C++11)。
我首先学习了x86汇编指令集和指令时钟计时。一旦你知道了这一点,你就知道编译器实际上在把你的代码转换成什么,你就会知道它能做什么,不能做什么。从那里,如果我对某段特定的代码感兴趣,我会从编译器中获得汇编输出,并尝试各种编码方式。多年来,我发现了一些东西。。。1) 编译器非常善于优化,甚至经常以几种不同的方式编码,最终得到相同的汇编输出,2)我经常对编译器的内联效果感到惊讶,3)我经常惊讶于有时一点点C++代码会产生大量的汇编输出。因此,当你复制多个继承C++对象时,你会意识到这是多么昂贵,当你写一些小实用程序方法来保护对象数据时,你就会意识到这个工具是多么昂贵。
在GCC的情况下使用编译到汇编程序:g++ -fverbose-asm -S
,在其他编译器中使用同类开关。这几乎是"在引擎盖下"。
相关文章:
- 正在查找文档以获得PS4平台的C++中的设备信息
- 如何在文档文件夹中创建目录
- 当Microsoft文档仅包含 C# 示例时,如何查找 C++ 包含文件名
- 通过构造函数创建一些值并尝试添加到文档中使用 rapidjson 不起作用
- 关于类的 Python 文档 - 对C++的引用不正确
- C++/autoconf 等效于文档库要求.txt的要求是什么?
- mbed:使用 USB 文档库编译会导致错误
- C++ VISUAL STUDIO:GLFWwindow没有初始化,即使它是在文档中编写的并且以前工作过
- 使用 yaml-cpp 更新 YAML 文档的节点和值
- 在加载 MSHTML 文档之前从 MSHTML 文档中删除无效的 URL
- 如何在C++中表示JSON文档的递归对象结构?
- 如何查找 Redshift Maya API 文档?
- 如何使用值模板编写文档测试用例?
- 如何使用 Gradle DSL(领域特定语言)上的文档?
- ncurses 找不到任何关于cchar_t的文档
- 提取狮身人面像文档中的C++代码片段
- 关于 API 文档和设备操作 在助手-sdk-cpp 上
- 如何搜索提升文档?
- 使用 mongo c++ 驱动程序查询嵌套的 BSON 文档
- PIMAGE_DOS_HEADER上缺少MSDN文档