C++ 查找已分配数据的未执行位

C++ 查找已分配数据的未执行位,c++,c,optimization,memory-management,d,C++,C,Optimization,Memory Management,D,有没有工具可以检查C/C++中分配的数据中是否有未执行的位 当我们试图减少在C++编写的DMD D编译器中的内存消耗时,我们可以利用这样的工具A。有关详细信息,请参阅 更新:我想他是一个很好的竞争者,对吧?阅读完对话后,我认为你应该做的第一件事就是按照你的建议使用massif。 然后,如果您看到某个特定类型被分配了很多,您可以对此进行研究 当然,在编译器中,未执行的位不会让我觉得是一个关键的内存占用者,AST构造和最重要的优化(ipo)中应该有更大的东西 此外,如果您发现某些类型实际上通过切换到

有没有工具可以检查C/C++中分配的数据中是否有未执行的位

当我们试图减少在C++编写的DMD D编译器中的内存消耗时,我们可以利用这样的工具A。有关详细信息,请参阅


更新:我想他是一个很好的竞争者,对吧?

阅读完对话后,我认为你应该做的第一件事就是按照你的建议使用massif。 然后,如果您看到某个特定类型被分配了很多,您可以对此进行研究

当然,在编译器中,未执行的位不会让我觉得是一个关键的内存占用者,AST构造和最重要的优化(ipo)中应该有更大的东西

此外,如果您发现某些类型实际上通过切换到占用空间较小的类型而从大小方面受益,请确保对性能进行基准测试。基准测试很重要,因为如果一个特定的4/8字节类型显示出来足以产生差异,那么CPU在计算非其本机字长的类型时通常会比较慢,这可能很重要


请参阅:

什么是“未执行位”?未使用的位。例如,一个C
enum
默认为32位,但几乎从不使用所有这些位来存储信息。如果使用具有
n
可选项
ceil(log2(n))
位的枚举。