code source Java représente un langage de programmation portable et flexible pour les entreprises , le Web et le développement d'applications de poche. Cet avantage de la portabilité vient en grande partie grâce à la machine virtuelle Java. Cependant, la JVM représente également un outil que les développeurs doivent gérer et entretenir afin de tirer le meilleur parti des applications Java . En particulier, la consommation de mémoire et l'allocation de tas dans la JVM sont des détails que les programmeurs feraient bien d'examiner. Java Virtual Machine
Tout le code Java s'exécute sur le dessus de la machine virtuelle Java. Code source Java est d'abord compilé en Java " bytecode ", qui exécute la JVM en traduisant le bytecode en commandes lisibles par machine. Pour effectuer ce processus et permettre à Java de la portabilité, il bénéficie , la JVM doit imiter un système informatique, compléter avec des structures de mémoire et de données, de sorte que le code source peut stocker et récupérer des données et des commandes . L'une de ces structures de données importantes est le tas.
La JVM Heap
Dans la programmation informatique , le code utilise la mémoire à travers deux structures internes différentes inhérentes au système informatique. Le " pile " contient l'ensemble du code pour des fonctions et des commandes , ainsi que des variables locales déclarées en cours d'exécution . Le « tas », d'autre part , contient des données à long terme qu'un programme peut allouer pour des données telles que des objets complexes . Depuis Java représente un langage de programmation totalement orienté objet , le tas est essentielle. Cependant, depuis Java s'exécute sur la machine virtuelle , la machine virtuelle elle-même doit contenir un tas. Grâce à elle , les programmeurs peuvent déclarer et instancier des objets et des variables statiques.
JVM mémoire et physique
Cependant, la JVM est un morceau de logiciel , et en tant que telle doit résider dans la RAM physique de l'ordinateur hôte. En essence , le tas JVM réside dans une machine virtuelle, qui elle-même fonctionne sur la mémoire d'une machine et utilise les structures de données de cette machine ( comme son tas ) . En conséquence , le tas de la JVM est limitée par les contraintes physiques de l'ordinateur de la JVM réside. Cela inclut d'exécuter simultanément des logiciels et des utilitaires système . Par conséquent , le tas JVM a la contrainte supplémentaire d' adhérer non seulement à la mémoire physique , mais aussi en compétition avec l' utilisation de la mémoire d'autres programmes. Cela affecte les attributs de tas de base , comme la taille potentielle.
JVM Heap Taille
Afin de gérer la taille du tas , le programmeur peut modifier les attributs de la taille initiale et maximale des tas de l' instance d'exécution de la JVM à travers les « -Xms » et drapeaux " -Xmx ", respectivement . Quelle est la taille du tas peut atteindre dépend des contraintes du système d'exploitation et les programmes en cours . Une règle de base est que la taille du tas doit être suffisamment grande pour éviter échanger des données à partir du tas sur le disque dur . Et les dimensions minimales et maximales ne devraient jamais être plus grande que la mémoire disponible sur le système hôte .