这就是GC如何充满详细GC启用貌似更大 -Java垃圾收集“真正”的时间比“用户” +“系统”
13463.547: [Full GC [PSYoungGen: 323053K->0K(325952K)]
[PSOldGen: 653170K->331738K(655360K)] 976224K->331738K(981312K)
[PSPermGen: 238715K->238715K(264448K)], 385.4631490 secs]
[Times: user=2.19 sys=1.35, real=385.50 secs]
实时怎么能比用户这么多的大+ sys?
我的第一个想法是垃圾收集器正在等待资源,但这个资源似乎不是IO或CPU,因为当发生gc时,“top”输出不显示任何cpu或内存问题。
如果它不在IO上等待并且它不受CPU限制,那么我唯一能想到的其他事情就是等待信号量/互斥量,或者真的非常慢地访问内存。 – Jonathan
你在你的应用中使用JNI吗?你的堆的大小是多少,你有多少物理RAM? – Ron
Xmx = 960 Mb,RAM = 4GB我们使用JNI但不是太频繁,JNI如何影响垃圾收集? –