Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java HeapSize使用估计_Java_Xml_Excel_Jvm - Fatal编程技术网

Java HeapSize使用估计

Java HeapSize使用估计,java,xml,excel,jvm,Java,Xml,Excel,Jvm,AWT缓冲区映像 我可以计算这个图像对象将获得多少堆内存 像 然后 它使用的总内存=W*H*4 有什么方法可以估计内存使用情况吗 对于Excel电子表格和一个简单的XML文件,如果它们具有特定的大小和/或包含特定的行/节点,需要多少内存 谢谢您可以在打开文件时监视您的应用程序,并获得未来配置的敏感估计:例如,请参阅hpjmeter:这不是一个容易的问题。首先,你需要确切地知道你想要测量什么。对于BuffereImage,您需要指定哪种类型,因为每个像素所需的字节数取决于它。 对于excel电子表

AWT缓冲区映像

我可以计算这个图像对象将获得多少堆内存

然后

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

有什么方法可以估计内存使用情况吗

对于Excel电子表格和一个简单的XML文件,如果它们具有特定的大小和/或包含特定的行/节点,需要多少内存


谢谢

您可以在打开文件时监视您的应用程序,并获得未来配置的敏感估计:例如,请参阅hpjmeter:

这不是一个容易的问题。首先,你需要确切地知道你想要测量什么。对于BuffereImage,您需要指定哪种类型,因为每个像素所需的字节数取决于它。 对于excel电子表格和XML文件,需要指定要使用的库

那么,知道的唯一方法就是测量。您可以进行多次测量和外推-这不能保证完全正确,但会产生有用的估计

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

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


这个名为的外部链接扩展了上一篇文章中的解决方案,它估计了对象图的大小。在这里复制太长了,我不需要复制代码,但该链接自2007年以来就存在,因此我相信它相当稳定。

或jconsole:谢谢你的回答,但我的问题是,当我打开磁盘大小大于39MB且有200万条记录的excel文件时,我的Java运行时会抛出一个OOM错误,因此,就像在BuffereImage中一样,我可以通过其他一些实用程序/代码提前知道处理此文件需要多少字节的内存,如果此字节可用,则继续处理,否则取替代根。
BUfferedImage(W,H,TYPE)