测量Java对象的内存消耗(完全"在应用程序中#34;)

时间:2016-01-23 04:40:23

标签: java memory

对于应用程序的统计信息报告,我想定期测量一个对象占用多少内存(以字节为单位)。我知道,与C / C ++不同,Java没有内置的sizeOf()方法,但可以通过Java Instrumentation实现。

然而,对于我正在开发的应用程序,存在一些限制;

  1. 不应使用Java Instrumentation(因为客户端不希望拥有预主代理和外部代理)。
  2. 内存测量算法本身不应该耗费内存/时间。
  3. 定性测量是可以接受的,但它应该考虑物体的深度。
  4. 我经历了问题的答案" In Java, what is the best way to determine the size of an object?"甚至接受了答案建议Java Instrumentation。由于在这种情况下不可接受,我使用Dimitris Andreou's ObjectExplorer,它使用基于反射的对象遍历框架来生成定性测量。但是,在测量大约80MB(深度)的对象时,这会消耗大量的时间和内存。所以我的问题是,还有另一种方法可以实现这一目标吗?

0 个答案:

没有答案