/ / Pourquoi le programme JVM s'exécute-t-il beaucoup plus rapidement avec des paramètres de taille de segment inférieure? - java, jvm

Pourquoi le programme JVM s'exécute-t-il beaucoup plus rapidement avec des paramètres de taille de segment plus petit? - java, jvm

Je teste une application JVM qui impose une charge très lourde à la fois sur les E / S de disque et sur le processeur.

Normalement, je le teste en utilisant la taille de tas 4G max / min, la combinaison complète prend en moyenne 73 secondes à courir.

Aujourd'hui, j'étais curieux et je ne lui avais donné qu'une taille de tas de 1 G max / min, et étonnamment, la combinaison complète ne prend que 62 secondes en moyenne.

Je me demande donc pourquoi la machine virtuelle Java fonctionne mieux avec une taille de segment de mémoire plus petite.

Notes supplémentaires:

Environnement:

java version "1.7.0_19"
OpenJDK Runtime Environment (fedora-2.3.9.1.fc17-x86_64)
OpenJDK 64-Bit Server VM (build 23.7-b01, mixed mode)

Linux ____ 3.8.4-102.fc17.x86_64 #1 SMP Sun Mar 24 13:09:09 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

Réponses:

3 pour la réponse № 1

D'après la documentation sur la machine virtuelle Java Oracle, la note indique

Ensuite, vous pouvez essayer de réduire la quantité de tas utilisée. Un plus grand tas entraînera une augmentation des pauses dans la collecte des ordures, car il y a plus tas à numériser.

C'est également fonction de l'algorithme GC que vous utilisez. Par exemple, le GC incrémental peut donner des nombres complètement différents. (Essayer -Xincgc et voir vos chiffres)

lien