Ecco come piena gc GC sguardi prolissi abilitati come -Java garbage collection tempo "reale" è molto più grande di + "sistema" "utente"
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]
Come può il tempo reale sia molto più grande di utenti + sys?
Il mio primo pensiero è stato che il garbage collector è in attesa di una risorsa, ma questa risorsa non sembra essere IO o CPU, poiché l'output "top" non mostra problemi di CPU o di memoria quando si verifica il gc.
Se non sta aspettando su IO e non è legato alla CPU, l'unica altra cosa che posso pensare è aspettare un semaforo/mutex, o davvero un accesso alla memoria lento. – Jonathan
usi JNI nella tua app? qual è la dimensione del tuo heap e quanta RAM fisica hai? – Ron
Xmx = 960 Mb, RAM = 4GB usiamo JNI ma non troppo spesso, in che modo JNI influenza la garbage collection? –