Les paramètres XMS et XMX dans la JVM : c'est quoi ?
Les paramètre en question indiquent la quantité de mémoire maximum utilisée par la machine virtuelle Java. Explication.
Lorsque l'on développe en Java, il est possible de modifier les paramètres d'exécution de la machine virtuelle Java (JVM). Il est possible entre autres de modifier la mémoire qui est allouée à la heap lors du lancement de la machine virtuelle.
Le paramètre -Xms indique la quantité de mémoire maximum utilisée par la heap lors du démarrage de la machine, alors que le paramètre -Xmx est utilisé pour spécifier la quantité de mémoire maximum que peut utiliser la heap lors de l'exécution de la machine. Ces deux paramètres acceptent les tailles de mémoires sous n'importe quelle unité de mesure de la mémoire (kilooctets, mégaoctets, gigaoctets).
Par exemple, si l'on souhaite que la JVM démarre avec une mémoire fixée à 256 Mo et puisse utiliser jusqu'à un maximum de 2 Go de mémoire, on pourra utiliser la commande suivante :
java -Xms256m -Xmx2g
Si, lorsque vous développez une application Java, vous obtenez l'erreur java.lang.OutOfMemoryError, vous pouvez utiliser ces paramètres pour ajouter de la mémoire à la machine virtuelle. Gardez cependant bien à l'esprit qu'on ne peut pas simplement allouer toute la mémoire disponible à la JVM. Ce paramètre n'affecte que la heap et, par exemple, la pile d'exécution où les méthodes Java utilisent un espace mémoire séparé de celui de la heap.