Java应用程序的内存占用量

时间:2011-06-07 15:21:28

标签: java apache-poi

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

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

谢谢!

2 个答案:

答案 0 :(得分:5)

一种简单的方法是使用jconsolejvisualvm(JVM附带)等工具手动监控内存消耗。

您还可以定期使用runtime API来衡量内存消耗。

答案 1 :(得分:4)

正如@Johan所提到的,您可以使用分析器或利用maxMemory,totalMemory, freeMemoryRuntime方法的某些组合。如果这些结果表明内存占用确实是一个问题,那么Apache POI确实为XSSF提供了更轻的占用空间another option。它使用起来比较困难,所以我建议不要使用它,除非你的分析结果表明你必须这样做,但它可能会有所帮助。

相关问题