Java HeapSize使用估计

时间:2014-03-01 08:36:59

标签: java xml excel jvm

AWT缓冲图像

我可以计算出这个Image Object将要获取多少堆内存,

喜欢

BUfferedImage(W,H,TYPE)

然后

  

它使用的总内存= W * H * 4

有什么方法可以估算内存使用量

对于Excel Spread Sheet和Simple XML文件,如果它们具有特定大小和/或包含特定行/节点,它们将需要多少内存?

由于

2 个答案:

答案 0 :(得分:0)

您可以在打开文件时监控您的应用程序并获得未来配置的感知评估:例如参见hpjmeter:https://h20392.www2.hp.com/portal/swdepot/displayProductInfo.do?productNumber=HPJMETER

答案 1 :(得分:0)

这不是一个容易的问题。首先,您需要知道完全您想要衡量的内容。对于BufferedImage,您需要指定哪个TYPE,因为每个像素所需的字节数取决于它。 对于excel电子表格和XML文件,您需要指定要使用的库。

然后事件,唯一的方法是通过测量。您可以进行多次测量并推断 - 这不能保证完全正确,但会产生有用的估计值。

这些帖子展示了如何做到这一点:

最后一篇文章“在Java中,确定对象大小的最佳方法是什么?”,只测量对象本身的大小,而不是它创建的对象图。

标题为Again about determining size of Java object外部链接在上一篇文章中有解决方案的扩展,用于估算对象图的大小。这里复制太长了(这不是我要复制的代码),但这个链接自2007年以来就存在,所以我相信它非常稳定。