2

我有一个 SWT 应用程序,它接受 java 类型项目并对所有文件执行一些解析机制,它工作正常,但在具有大量文件的大型项目中它开始产生错误:

Java 堆空间:java.lang.OutOfMemory

并终止解析。我怎么能通过java编程来处理它,而不是猜测用户的机器配置。

注意:直到现在我尝试了一种机制,如果项目文件超过我在这里取 1000 的 MAX 大小,我首先计算项目文件,将项目划分为包含 50 个文件的文件夹块并逐个解析它们,但它也没有点击,我解析某些文件夹后出现错误。

4

1 回答 1

5

拥有 Java 堆空间时最现实的方法(因为您没有共享任何代码):java.lang.OutOfMemory将是分析您的 Java 应用程序,以便您可以更准确地了解您的应用程序在哪里耗尽了堆空间. 然后,您可以修改代码以减少应用程序的内存使用量。

YourKitVisualVM是可用于测试应用程序的 Java 分析软件的两个很好的示例。

此外,增加项目的堆大小可以被认为是一种可能的解决方案。您只需重新调整-Xmx设置堆最大大小的虚拟机选项。

于 2012-12-20T08:01:33.240 回答