Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 针对少量和长期GC运行的JVM调优_Java_Performance_Garbage Collection_Jvm - Fatal编程技术网

Java 针对少量和长期GC运行的JVM调优

Java 针对少量和长期GC运行的JVM调优,java,performance,garbage-collection,jvm,Java,Performance,Garbage Collection,Jvm,我的服务器应用程序生成了许多死气沉沉的对象,因此我假设eden和survivor空间很快就被填满了,这会导致频繁的GC运行。 我的目标是进行几次/长距离跑步,比如说每天一次,即使需要几秒钟。 您将如何为此目标优化JVM? 我应该使用哪个GC?(到G1) 可用堆空间约为4Gb(-Xmx4G)在您的情况下,它会触发频繁的小型gc。您应该使用“-XX:NewRatio=ratio” 这将决定老一代和年轻一代的比例 例如-XX:NewRatio=3意味着老一代和年轻一代之间的比率为1:3,eden和幸存

我的服务器应用程序生成了许多死气沉沉的对象,因此我假设eden和survivor空间很快就被填满了,这会导致频繁的GC运行。
我的目标是进行几次/长距离跑步,比如说每天一次,即使需要几秒钟。

您将如何为此目标优化JVM?
我应该使用哪个GC?(到G1


可用堆空间约为4Gb(-Xmx4G)

在您的情况下,它会触发频繁的小型gc。您应该使用
“-XX:NewRatio=ratio”

这将决定老一代和年轻一代的比例

例如-XX:NewRatio=3意味着老一代和年轻一代之间的比率为1:3,eden和幸存者空间的组合大小将是堆的四分之一

此外,您还可以通过使用NewSize和MaxNewSize微调Eden和Survivor空间。这些参数控制新一代的最小和最大大小

默认情况下,NewRation=2,这意味着老一代和年轻一代之间的比率为1:2


您可以阅读更多详细信息

在您的案例中,它会触发频繁的次要gc。您应该使用
“-XX:NewRatio=ratio”

这将决定老一代和年轻一代的比例

例如-XX:NewRatio=3意味着老一代和年轻一代之间的比率为1:3,eden和幸存者空间的组合大小将是堆的四分之一

此外,您还可以通过使用NewSize和MaxNewSize微调Eden和Survivor空间。这些参数控制新一代的最小和最大大小

默认情况下,NewRation=2,这意味着老一代和年轻一代之间的比率为1:2


您可以阅读更多详细信息

您是在谈论年轻一代还是老一代的收藏?另外,GC后记录并指出哪些部分在你认为可以容忍的范围之外。@ 847我说的是频繁的年轻一代的收藏。减少长时间运行“完全GC”的唯一方法是不要让记忆累积起来。更频繁地运行gc将使堆保持较小。您应该调整的是“世界暂停”事件(完整gc)。如果你的应用程序正在创建大量新对象,那么你应该使用parallelGC。你是在谈论年轻人还是老一代人的集合?另外,GC后记录并指出哪些部分在你认为可以容忍的范围之外。@ 847我说的是频繁的年轻一代的收藏。减少长时间运行“完全GC”的唯一方法是不要让记忆累积起来。更频繁地运行gc将使堆保持较小。您应该调整的是“世界暂停”事件(完整gc)。如果你的应用程序正在创建大量新对象,那么你应该使用parallelGC。