|
|
Line 34: |
Line 34: |
| == Pièges == | | == Pièges == |
|
| |
|
| <div class="mw-translate-fuzzy">
| |
| ===Mémoire === | | ===Mémoire === |
| Java utilise un mécanisme de désallocation automatique de la mémoire (''garbage collector'') pour identifier les variables qui ne s'appliquent pas et retourner la mémoire qui leur est associée au système d'exploitation; plusieurs programmes Java nécessitent tout de même beaucoup de mémoire pour bien fonctionner. Au lancement avec la commande <tt>java</tt>, la taille du tas Java (''heap size'') est initialement fixée à 1/64e avec un maximum de 1/4 de la mémoire physique. Ces proportions, et particulièrement la valeur maximale, peuvent s'avérer inadéquates et font en sorte qu'une part importante de la mémoire reste inutilisée. Pour éviter cette situation, spécifiez la quantité maximale de mémoire à utiliser avec la commande | | Une instance Java s'attend à avoir accès à toute la mémoire physique d'un nœud alors que l'ordonnanceur ou un interpréteur pourrait imposer ses limites (souvent différentes) dépendant des spécifications du script de soumission ou des limites du nœud de connexion. Dans un environnement de ressources partagées, ces limites font en sorte que des ressources à capacité finie comme la mémoire et les cœurs CPU ne sont pas épuisées par une tâche au détriment d'une autre. |
| | |
| {{Commande|java -Xmx8192m -jar file.jar}}
| |
| Dans cet exemple, le maximum est de 8192Mo (8Go). Indiquez la taille initiale du tas avec l'argument <tt>Xms</tt> et voyez toutes les options en ligne de commande que la JVM exécutera avec l'indicateur <tt>-XX:+PrintCommandLineFlags</tt>.
| |
| </div>
| |
|
| |
|
| When the Java VM starts, it sets two memory parameters according to the amount of physical rather than available memory as follows: | | When the Java VM starts, it sets two memory parameters according to the amount of physical rather than available memory as follows: |