Java JVM更高的分配率会对性能造成影响吗?怎样

Java JVM更高的分配率会对性能造成影响吗?怎样,java,garbage-collection,jvm,Java,Garbage Collection,Jvm,带有-Xmx32m的GC日志如下所示: 808: [GC (Allocation Failure) [PSYoungGen: 9760K->32K(10240K)], 0.0003076 secs] 819: [GC (Allocation Failure) [PSYoungGen: 9760K->32K(10240K)], 0.0003079 secs] 830: [GC (Allocation Failure) [PSYoungGen: 9760K->32K(10240K)

带有-Xmx32m的GC日志如下所示:

808: [GC (Allocation Failure) [PSYoungGen: 9760K->32K(10240K)], 0.0003076 secs]
819: [GC (Allocation Failure) [PSYoungGen: 9760K->32K(10240K)], 0.0003079 secs]
830: [GC (Allocation Failure) [PSYoungGen: 9760K->32K(10240K)], 0.0002968 secs



2nd Allocation rate is (9760-32)/(819-808)= 884.36K
3rd Allocation rate is (9760-32)/(830-819)= 884.36K
808: [GC (Allocation Failure) [PSYoungGen: 20512K->32K(20992K)], 0.0003748 secs]
831: [GC (Allocation Failure) [PSYoungGen: 20512K->32K(20992K)], 0.0004538 secs]
855: [GC (Allocation Failure) [PSYoungGen: 20512K->32K(20992K)], 0.0003355 secs]

2nd allocation rate is (20512-32)/(831-808)=890.43K
3nd allocation rate is (20512-32)/(855-831)=853.33K
带有-Xmx64m的GC日志如下所示:

808: [GC (Allocation Failure) [PSYoungGen: 9760K->32K(10240K)], 0.0003076 secs]
819: [GC (Allocation Failure) [PSYoungGen: 9760K->32K(10240K)], 0.0003079 secs]
830: [GC (Allocation Failure) [PSYoungGen: 9760K->32K(10240K)], 0.0002968 secs



2nd Allocation rate is (9760-32)/(819-808)= 884.36K
3rd Allocation rate is (9760-32)/(830-819)= 884.36K
808: [GC (Allocation Failure) [PSYoungGen: 20512K->32K(20992K)], 0.0003748 secs]
831: [GC (Allocation Failure) [PSYoungGen: 20512K->32K(20992K)], 0.0004538 secs]
855: [GC (Allocation Failure) [PSYoungGen: 20512K->32K(20992K)], 0.0003355 secs]

2nd allocation rate is (20512-32)/(831-808)=890.43K
3nd allocation rate is (20512-32)/(855-831)=853.33K

根据报告和员额,分配率越低越好。怎么做?

我不确定确切的问题是什么。这些链接涵盖了这个主题。我将尝试总结:

分配率影响次要GC的频率。分配得越快,执行次要GC的频率就越高。要执行小型GC,JVM必须使用一些CPU能力来查找未使用的对象,并执行GC所做的其他工作。这意味着一些CPU能力将用于垃圾收集,而不是执行应用程序代码。有时,应用程序代码需要所有CPU电源才能处理负载,而过于频繁的GC将对吞吐量产生负面影响。为了提高吞吐量,可以降低分配率,这将减少GC的频率,并为流量处理留下更多CPU

还有一个问题与过早晋升有关。高分配率会导致频繁的小GC,这意味着一些短生命体可能会被提升到老一代,因为它在几个小GC中存活下来。当小型地面军事系统非常频繁时,幸存下来的少数地面军事系统并不意味着该物体寿命长。向老一代推广短生命物体将导致更频繁的大型GC