【发布时间】:2020-03-08 11:08:47
【问题描述】:
假设我想跟踪在 C++ 程序中创建的所有对象。
- 在内存的堆栈部分(
Object obj;) - 在内存的堆部分(使用
new动态分配)
有什么方法可以知道堆栈中有多少对象以及堆内存中有多少?在这两种情况下都会调用构造函数,所以它没有帮助。
【问题讨论】:
-
所有对象都是在堆中创建的(至少对于 Java)[:-)
-
标准 C++ 没有提供任何方法来区分在堆和堆栈上创建的对象。一个对象不应该关心。
-
@CarlosHeuberger - 如果该方法已被优化(通过 JVM 实现)并且对象没有转义该方法,我认为这是不可靠的。但是问题反复询问C++,Java标签不正确,所以... :-)
-
听起来像是 XY 问题。请描述你想要达到的目标。
标签: c++ object heap-memory stack-memory