我有一个基于Java7的JBoss服务器上运行的应用程序。我无法升级Java版本。它只有1GB的内存,当前使用ParallelGC。如果有其他方法,我不想增加内存。
当服务器收到大量请求时,这可能导致垃圾收集器在很短的时间内运行许多完整的gc周期,试图释放内存(这是不可以的)。这会导致应用程序无响应,因为所有内容均被gc阻止。
我用G1GC测试了该应用程序,它在高负载下的响应似乎要好得多。通过分析gc日志文件,我发现G1GC所用的时间比ParallelGC少。
但是我要问自己这是否只是巧合,还是G1GC通常在高内存负载下(即当几乎完全使用内存时)表现更好?
在此特定情况下,我无法在线找到任何基准,因此,我将感谢您提供有关此方面的任何信息。