java应用程序的内存占用

java应用程序的内存占用,java,apache-poi,Java,Apache Poi,在我们的应用程序中,我们允许用户通过excel工作表上传/下载数据,并使用Apache POI读取和写入这些excel工作表。 我们计划将所有的xls工作表迁移到xlsx,但在此过程中,我们了解到通过ApachePOI的XSSF(对于xlsx)的内存占用非常高 因此,我们希望对此进行压力测试,并验证迁移到xlsx不会给我们带来频繁的OutOfMemory异常。 任何关于如何有效记录内存占用的指针,同时我们使用更大的excel(xlsx)文件来测试此功能 谢谢 一种简单的方法是使用诸如或jvisu

在我们的应用程序中,我们允许用户通过excel工作表上传/下载数据,并使用Apache POI读取和写入这些excel工作表。
我们计划将所有的xls工作表迁移到xlsx,但在此过程中,我们了解到通过ApachePOI的XSSF(对于xlsx)的内存占用非常高

因此,我们希望对此进行压力测试,并验证迁移到xlsx不会给我们带来频繁的OutOfMemory异常。 任何关于如何有效记录内存占用的指针,同时我们使用更大的excel(xlsx)文件来测试此功能


谢谢

一种简单的方法是使用诸如或
jvisualvm
(JVM附带)之类的工具来手动监视内存消耗


您还可以定期使用API来测量内存消耗

正如@Johan所提到的,您可以从
运行时
使用探查器或利用一些方法的组合
maxMemory、
totalMemory、
freeMemory
。如果这些结果表明内存占用确实是一个问题,那么ApachePOI确实为XSSF提供了更轻的内存占用。它更难使用,所以我不建议使用它,除非您的评测结果表明您必须使用它,但它可能会有所帮助。

的可能重复。该线程中提到了许多推荐的探查器。