我想测量我的Java应用程序的内存分配数据,即分配的所有对象的大小的总和。由于对象分配是在年轻一代完成的,这似乎是正确的地方。如何衡量年轻一代收集的记忆的总和?
我知道jconsole,我知道JMX bean,但我找不到合适的变量......目前我们正在解析gc日志输出文件,但这非常困难。理想情况下,我们想通过JMX来测量它...
我该如何得到这个值?
查德威克的评论后附加信息:
我想知道我的应用程序使用多少内存。这是一个运行在JBoss Appserver中的相当大的软件。每4周有一个新版本的软件,我们需要比较旧版本和新版本之间的内存消耗。在特定时间比较旧一代的现值是不够的。知道分配多少/多少内存非常有用。由于许多物体正在年轻一代收集,我需要在那里进行测量。
在此期间,我对此有一个估计。我会将其作为答案发布。
感谢, 马塞尔
不是Facebook收集的年轻一代的记忆? * duck and runs ... * – 2010-06-01 09:19:11
非常好;-)但是这并不便于确定分配的大小 – Marcel 2010-06-01 15:26:29
您是问在一段时间内分配了多少内存或者在特定的运行期间回收了多少内存? GC?看起来你的头衔要求一个,但问题要求另一个,并且我认为GC可能会在一段时间内运行多次,因此确定收集的最终内存不会给出准确的“总分配”总和。是的,这可以减轻,但一个用例会有助于澄清。 – Chadwick 2010-08-31 00:39:08