如何计算或查看编译时生成的指令数
How do I calculate or view the number of instructions generated when compiled?
基本上,如果我写一个函数,我希望看到编译时有 15 条指令。然后我编辑函数,看到现在有 20 个。
我该如何衡量?有工具吗?我需要学习一些组装吗?
将编译代码视为汇编程序的工具称为反汇编程序,但程序集输出内置于大多数编译器套件中。对于 gcc,请使用gcc -S file.c
命令查看程序集输出。
许多IDE(例如Eclipse,NetBeans,Visual Studio)提供了方便的窗口来查看此类输出。
您还可以使用联机程序集查看器,如 http://gcc.godbolt.org/
请注意,指令数量越少并不意味着代码执行得更快。有些指令比其他指令需要更长的时间来执行,有些可能会导致管道刷新等。
gcc -S source.c; wc -l source.s
相关文章:
- 无法编译 rtmidi 测试 cmidiin.cpp 文件, 非法指令
- C++CMake编译指令与
- 如何在编译时定义C++预处理器指令的值?
- 向量迭代编译为非常不同的指令
- 当我编译指令__atomic_add_fetch时,到底会发生什么
- 如何检查编译的代码是否使用了 SSE 和 AVX 指令?
- 如何在Visual Studio中使用#if指令编译时检查常量变量
- 使用mpopcnt编译会导致非法指令错误
- 如何通过预处理器指令检查编程C++中是否需要预编译标头
- 如何计算或查看编译时生成的指令数
- 在编译 Android 版 OpenCV Core 模块时,包含 Eclipse 中未解析的指令引用
- 添加许多 -isystem include 指令是否会显著减慢编译过程
- 使用 qmake 成功编译 SSE 指令(但 SSE2 不被识别)
- 使用带有自定义对齐分配器实现的最新g++,使用SSE和-O3选项编译时出现非法指令(核心转储)
- 在VMWare机器上编译的程序在亚马逊服务器上运行时会因非法指令而崩溃
- 为什么VS2013将函数调用编译成两个指令而不是一个
- 使用Makefile编译的预处理器指令(#define)列表
- Makefile指令只编译第一个文件
- 控制编译指令在文件从其他文件c++
- 如何使用枚举值直接编译预处理器指令