使用docx4j进行docx比较时发生java OutOfMemoryError
在我的应用程序中,我比较了两个docx文件并创建了一个html比较文件,当我尝试使用低于150或170行的文件时,就没有问题了,而我尝试比较大文件,比如200行或更大的文件,然后显示
java.lang.OutOfMemoryError: Java heap space error,
有谁能帮忙吗
你可以在下面搜索框中键入要查询的问题!
在我的应用程序中,我比较了两个docx文件并创建了一个html比较文件,当我尝试使用低于150或170行的文件时,就没有问题了,而我尝试比较大文件,比如200行或更大的文件,然后显示
java.lang.OutOfMemoryError: Java heap space error,
有谁能帮忙吗
# 1 楼答案
尝试使用命令行参数
-Xmx<maximum heap size>
和-Xms<minimum heap size>
增加Java堆大小同样在代码中,测试您是否确实使用以下方法增加了堆大小:
在第117行调用
Differencer.diff
之前执行此操作# 2 楼答案
您可以使用-Xmx和-Xmx作为VM参数来增大堆空间
这里有更多关于Heap Size Tuning或这里Heap size的信息
# 3 楼答案
内存不足是因为您没有使用Docx4jDriver类,这使得通过首先执行段落级别的diff,diff问题更容易处理
像这样使用它:
# 4 楼答案
尝试分析您的应用程序,而不是进行假设或智能猜测。您可以使用Jdk附带的visualvm或控制台
此外,您还可以使用jmap对应用程序进行堆转储,然后使用jhat或eclipsemat(我更喜欢这个,google out)查看是什么在消耗内存,并查找任何异常行为