Java HeapSize使用估计
AWT缓冲区映像 我可以计算这个图像对象将获得多少堆内存 像 然后 它使用的总内存=W*H*4 有什么方法可以估计内存使用情况吗 对于Excel电子表格和一个简单的XML文件,如果它们具有特定的大小和/或包含特定的行/节点,需要多少内存Java HeapSize使用估计,java,xml,excel,jvm,Java,Xml,Excel,Jvm,AWT缓冲区映像 我可以计算这个图像对象将获得多少堆内存 像 然后 它使用的总内存=W*H*4 有什么方法可以估计内存使用情况吗 对于Excel电子表格和一个简单的XML文件,如果它们具有特定的大小和/或包含特定的行/节点,需要多少内存 谢谢您可以在打开文件时监视您的应用程序,并获得未来配置的敏感估计:例如,请参阅hpjmeter:这不是一个容易的问题。首先,你需要确切地知道你想要测量什么。对于BuffereImage,您需要指定哪种类型,因为每个像素所需的字节数取决于它。 对于excel电子表
谢谢您可以在打开文件时监视您的应用程序,并获得未来配置的敏感估计:例如,请参阅hpjmeter:这不是一个容易的问题。首先,你需要确切地知道你想要测量什么。对于BuffereImage,您需要指定哪种类型,因为每个像素所需的字节数取决于它。 对于excel电子表格和XML文件,需要指定要使用的库 那么,知道的唯一方法就是测量。您可以进行多次测量和外推-这不能保证完全正确,但会产生有用的估计 这些帖子展示了如何做到这一点: 最后一篇文章,在Java中,确定对象大小的最佳方法是什么?只测量对象本身的大小,而不是它创建的对象图
这个名为的外部链接扩展了上一篇文章中的解决方案,它估计了对象图的大小。在这里复制太长了,我不需要复制代码,但该链接自2007年以来就存在,因此我相信它相当稳定。或jconsole:谢谢你的回答,但我的问题是,当我打开磁盘大小大于39MB且有200万条记录的excel文件时,我的Java运行时会抛出一个OOM错误,因此,就像在BuffereImage中一样,我可以通过其他一些实用程序/代码提前知道处理此文件需要多少字节的内存,如果此字节可用,则继续处理,否则取替代根。
BUfferedImage(W,H,TYPE)