【发布时间】:2019-12-20 19:44:33
【问题描述】:
我正在尝试找到一种正确的方法来测量 c++ 中对象的大小。因为以前我使用的是 Java,所以我一直使用the following library,它递归地迭代对象的引用并以 KB 或 MB 为单位计算大小。我还看到可以使用 sizeof,但是,这不适合我,因为对于一个对象,它总是返回相同的大小,无论其中存储的数据如何。您能否提供一些信息或库来测量对象的大小以进行性能测试,或者如果我在 C++ 中被误认为 sizeof,请向我解释一下?
编辑: 我正在尝试测量类实例的大小。 我正在测量一个包含数组的类的实例。无论数组大小如何,sizeof 运算符都会返回 24 作为结果。我正在尝试比较两种方法两种类型的结构并报告与第二种结构的尺寸节省情况,或者实际比较哪种方法导致更大的尺寸。
【问题讨论】:
-
会不会是你用错了
sizeof()? -
“对象”是什么意思?类或结构的实例?为什么需要尺寸?您要解决的问题是什么?而对于一些特定的“对象”,你期望的尺寸是多少,你得到的尺寸是多少?
-
是的,正如我提到的,也许我用错了
-
我怀疑是否有一种工具可以实现您的目标。考虑
struct foo { int * f; },无法知道存储在f的数据是否属于foo,也无法知道f是指向单个int还是指向特定大小的数组。要知道对象的大小sizeof是正确的工具 -
@Someprogrammerdude 我刚刚进行了编辑,希望对您有所帮助