Application Java qui utilise beaucoup de mémoire. Utiliser-Xmx?


J'ai une application java qui utilise environ 15G sur une machine avec 16G. Je ne sais pas si je dois définir la taille maximale du tas.

Si défini, la jvm mangera-t-elle toute la ram jusqu'à la limite, puis démarrera-t-elle la collecte des ordures et arrêtera-t-elle tout pendant qu'elle traverse 15G d'objets tas?

Sinon, la jvm nuira-t-elle aux performances en n'utilisant pas toute la ram disponible sur la machine.

Ma machine virtuelle spécifique est: Java HotSpot(TM) Machine virtuelle de serveur 64 bits (build 1.6.0_03-b05, mixte mode).

Merci

Author: Martin Redmond, 2009-06-23

3 answers

-Xmx15G définira la taille maximale du tas à 15 gig. Java n'allouera que ce dont il a besoin pendant son exécution. Si vous ne le définissez pas, il utilisera uniquement la valeur par défaut. Pour plus d'informations sur la valeur par défaut, reportez - ce post.

-Xms15G définit le minimum tas à 15 concert. Cela oblige java à allouer 15 go d'espace de tas avant de commencer à s'exécuter, qu'il en ait besoin ou non.

Généralement, vous pouvez les définir tous les deux sur des valeurs appropriées en fonction de la façon dont vous ajustez la JVM.

 18
Author: Cogsy, 2017-05-23 12:10:16

Dans Java 6, la taille maximale du tas par défaut est déterminée par la quantité de mémoire système présente.

Selon la Garbage Collector Ergonomie page, la taille maximale du tas est:

Plus petit de 1 / 4ème du physique mémoire ou 1 Go. Avant J2SE 5.0, le la taille maximale par défaut du tas était de 64 Mo.

En utilisant le commutateur -Xmx peut être utilisé pour modifier la taille maximale du tas. Voir le java - la documentation du lanceur d'applications Java pour l'utilisation détail.

 12
Author: coobird, 2009-06-23 02:18:01

Si vous ne définissez pas de taille de tas maximale (avec -Xmx), le maximum par défaut n'est-il pas seulement 64 Mo?

Donc votre application n'échouera-t-elle pas avec OutOfMemoryError s si vous ne la définissez pas? Je suis confus sur cette question. Comment votre application peut fonctionner sans ce commutateur?

 0
Author: matt b, 2009-06-23 01:56:38