Java OpenL平板电脑规则与许多条件内存问题

Java OpenL平板电脑规则与许多条件内存问题,java,garbage-collection,Java,Garbage Collection,在我的组织中,我们在Openl平板电脑中建立了规则,其中很少有20+列条件。这将消耗所有java堆大小,然后应用程序挂起。有什么建议吗 使用System.gc()手动垃圾收集,但无效 源代码可从OpenL平板电脑获得 当更多的条件添加到条件列时,垃圾收集应该更有效,并且不会消耗所有内存 任何超过20列的内容都会消耗额外的内存,每次编辑、上载都会增加到以前的内存利用率 我们在32GB的linux服务器上尝试了24GB的java堆大小,但没有 解决您描述的问题是内存泄漏(而不是垃圾收集器问题) 由

在我的组织中,我们在Openl平板电脑中建立了规则,其中很少有20+列条件。这将消耗所有java堆大小,然后应用程序挂起。有什么建议吗

使用System.gc()手动垃圾收集,但无效

源代码可从OpenL平板电脑获得

当更多的条件添加到条件列时,垃圾收集应该更有效,并且不会消耗所有内存

任何超过20列的内容都会消耗额外的内存,每次编辑、上载都会增加到以前的内存利用率

我们在32GB的linux服务器上尝试了24GB的java堆大小,但没有
解决您描述的问题是内存泄漏(而不是垃圾收集器问题)

由于某些原因,堆中占用了大量对象,而GC无法回收这些对象,因为它们在对象图中是可访问的

任何超过20列的内容都会消耗额外的内存,每次编辑、上载都会增加到以前的内存利用率

这意味着每次编辑、上传等都会泄漏一些内存

您需要使用堆转储分析工具查找内存泄漏的原因。我可以推荐免费的JVisualVM和eclipsemat

我建议进行两次堆转储:

  • 应用程序重启后的第一次
  • 在几次编辑之后,第二次上传(避免填满整个内存,使用20GiB堆转储是一件痛苦的事情)

在堆转储分析工具中,您可以比较转储并找到泄漏的对象类型。同样的工具还允许您跟踪从泄漏的对象实例到GC根的路径。

您描述的问题是内存泄漏(而不是垃圾收集器问题)

由于某些原因,堆中占用了大量对象,而GC无法回收这些对象,因为它们在对象图中是可访问的

任何超过20列的内容都会消耗额外的内存,每次编辑、上载都会增加到以前的内存利用率

这意味着每次编辑、上传等都会泄漏一些内存

您需要使用堆转储分析工具查找内存泄漏的原因。我可以推荐免费的JVisualVM和eclipsemat

我建议进行两次堆转储:

  • 应用程序重启后的第一次
  • 在几次编辑之后,第二次上传(避免填满整个内存,使用20GiB堆转储是一件痛苦的事情)
在堆转储分析工具中,您可以比较转储并找到泄漏的对象类型。同样的工具还允许您跟踪从泄漏对象实例到GC根的路径。

据我所知,System.GC()不会以正确的方式触发垃圾收集器。据我所知,System.GC()不会以正确的方式触发垃圾收集器。