永久性的内存不足| Java |的IntelliJ

时间:2016-11-08 17:57:15

标签: java maven intellij-idea jvm

我有一个18个班级的程序。它们正在工作线程保存(已选中)没有递归调用,也没有进行任何复杂的计算。

但我的IDEA总是在几个小时后说出

  

没有足够的内存来执行请求的操作。   快速增加' Xmx'设置并重新启动IDE以使更改生效。

所以我做到了。我没问题。

但我仍然想知道我是否有错误或者Thread没有正确终止。由于我使用WAMP和其他一些HTTP功能,我可以对其进行成像。

  1. 那么有没有可能看到哪个类/线程消耗了多少内存?
  2. 到目前为止,我被教导VM应该有一个垃圾收集器。那么为什么我必须在出现错误时始终重启IDE?
  3. 如果这里有人熟悉IntelliJ,他/她可以回答我,除了如何让我的整个项目在PC上运行,只安装了一个VM。因为在项目文件夹中只有.java文件,没有类文件。当我尝试使用控制台与javac" file.java"我只收到很多错误。 (项目与Maven和Intellij 2016.2.5一起使用)

1 个答案:

答案 0 :(得分:1)

  1. 发生内存不足错误时,可以使用“-XX:+ HeapDumpOnOutOfMemoryError”转储内存;或者“-XX:-PrintGC和XX:-PrintGCDetails”用于堆/ GC信息。

  2. 设置GC是不够的。您必须调整GC,说明更改堆大小,堆生成以及何时执行GC以获得最佳性能或避免内存不足错误。更多内容可以在Link上阅读。

  3. 您可以获取“jar”文件或“class”文件以在其他平台上运行。或者,您可以在指定平台上使用源代码重新生成类文件。