2015-10-23 109 views
0
Exception in thread "Thread-8" java.lang.OutOfMemoryError: Java heap space 
Exception: java.lang.OutOfMemoryError thrown from the UncaughtExceptionHandler in thread "Thread-8" 
Exception in thread "Thread-6" java.lang.OutOfMemoryError: Java heap space 
Exception in thread "Thread-0" java.lang.OutOfMemoryError: Java heap space 
Exception in thread "Thread-1" java.lang.OutOfMemoryError: Java heap space 
Exception in thread "Thread-3" java.lang.OutOfMemoryError: Java heap space 

我有这个例外。任何人都可以请帮我理解为什么会发生这种异常?线程“线程-8”中的异常java.lang.OutOfMemoryError:Java堆空间

这个异常并没有提供我的代码发生这种情况的地方。

编辑: 从我所收到的答复,我意识到我需要某种爪哇探查,帮我检测,其中内存泄漏是。由于我使用NetBeans来开发我的应用程序,因此我决定使用其嵌入式分析器。

@MuhammadGhazanfar给了我这个非常有益的链接: Best way to profile memory usage in a Java application?

谢谢你的时间,你的一切帮助。

回答

0

Java docs去,在OutOfMemoryError是,

Thrown when the Java Virtual Machine cannot allocate an object because it is out of memory, and no more memory could be made available by the garbage collector.


为什么会出现这种情况?你的应用程序只是使用太多的内存。

你能做些什么来解决它?那么,你可以尝试一些下面列出的东西,并期待herehere更多

  • 尝试使用Singleton pattern的地方就可以了。
  • 避免使用大型数组。将链接列表放入内存很容易。
  • 当你不需要物体时不要制造物体。
  • 使用-Xmx选项与java设置较高的堆大小。
+0

感谢您的回复。你很亲切。无论如何追踪消耗所有内存的对象?你有什么建议让我用来了解泄漏的来源? – ThelmaJay

+0

再次感谢你。 – ThelmaJay

+0

@ThelmaJay您将需要一个分析器。阅读这些链接。 [最佳方式对轮廓存储器使用的功能于一个-Java的应用](http://stackoverflow.com/questions/756873/best-way-to-profile-memory-usage-in-a- java的应用程序)[如何在内存中的配置文件](http://stackoverflow.com/questions/10108942/how-to-memory-profile-in-java) –

0

它发生的地方并不重要:它只发生在需要一些内存的地方;并没有发现被留下。

基本上你想学习如何使用Java Profiler配置文件来查看应用程序的内存使用情况;以便或者确定你正在处理的内存泄漏;或了解实际需要多少内存;可能只是在运行“java”帐户时,您的应用程序需要比默认设置更多的内存。

+0

我做了一些研究,但没有找到我发现的帖子帮助了我。从其中一篇文章中我添加了-Xmx1024m -Xms512m,但没有帮助我。我知道问题是泄漏,我只是想了解在哪里。当我发布这个问题时,我的意图是看看是否有人已经看到它,并且可能知道哪种类型的代码可能会产生这种异常。我并不是故意抛出一个问题。我需要指示,因为我不知道在哪里看。您的建议是使用Java Profiler。我会在网上查找关于它的更多信息。谢谢。 – ThelmaJay

+0

那么,“调试java内存泄漏”给了我一些开箱即用的好链接。但是,好的,有时候真的需要这样才能走上正确的轨道...... – GhostCat

相关问题