代码之家  ›  专栏  ›  技术社区  ›  Chicken Sandwich No Pickles

更改垃圾收集方法

  •  0
  • Chicken Sandwich No Pickles  · 技术社区  · 1 年前

    我们从Java 8升级到了Java 11,现在当我们使用Java的程序运行时,它似乎耗尽了内存,这让我觉得垃圾收集有问题。

    我更改了以下值

    "-Xms512m" "-Xmx512m"
    

    对于这些值:

    "-Xms512m" "-Xmx4096m"
    

    但这似乎于事无补。我想尝试强制Java-11使用与Java-8相同的默认垃圾回收方法,因为那里一切都很好。

    为了强制使用某个垃圾回收,我需要编辑哪个文件?我希望Java-11使用 Parallel/Throughput GC .

    有什么建议吗?

    0 回复  |  直到 1 年前
        1
  •  2
  •   Stephen C    1 年前

    您可以通过给出jvm选项来告诉Java 11使用并行/吞吐量收集器 -XX:+UseParallelGC 这隐式地启用 UseParallelOldGC

    看见 https://docs.oracle.com/en/java/javase/11/gctuning/available-collectors.html …和Java手动输入。


    然而,我同意这些评论。我/我们怀疑使用的GC不是您问题的真正原因。相反,我怀疑您有内存泄漏或内存管理问题,而且使用G1GC比使用ParallelGC更快地发现这一点。

    正确的解决方案是调查问题的根本原因。摆弄GC选项是一种 band aid solution 。即使现在修复有效,将来你也有可能再次遇到问题;例如,如果您的输入数据集变得更大。