J'ai besoin d'une règle approximative concernant la durée maximale de la collecte complète des déchets. La motivation est d'être capable de distinguer entre un processus JVM défectueux et un processus qui est sous GC. Supposons que je dispose d'un matériel de serveur à usage général normal, HotSpot JVM 8, la taille de segment est 20G-40G, aucune option de mémoire GC et de mémoire spécifique n'est définie. Qu'est-ce qu'un délai raisonnable pour le GC pour compléter? Est-ce 5 minutes, 20 minutes ou jusqu'à des heures?Quelle est la durée approximative du ramassage des ordures dans le cas le plus défavorable sur les grands tas?
Mise à jour: Mon application est un travail déconnecté nécessitant beaucoup de mémoire traitant des structures de données volumineuses. Je n'ai pas besoin d'accorder GC du tout. Les pauses de 10 secondes et 10 minutes sont très bien si cette limite est connue.
5 ou 20 minutes? Est-ce que cela vous semble raisonnable que votre programme s'arrête pendant si longtemps? – alfasin
Je serais vraiment surpris si vous avez vraiment besoin de penser "minutes" ici. Je * espère * pour quelques * secondes * au maximum. Et au-delà: cela dépend toujours des caractéristiques de votre application. – GhostCat
Je me souviens courir dans un exemple de 18 secondes GC qui a été considéré comme * vraiment mauvais * ... – alfasin