Question

Je souhaite connaître le fonctionnement interne de la machine virtuelle Java, son fonctionnement et les détails importants. Pouvez-vous suggérer une ressource ou le meilleur livre disponible pour cela?

Était-ce utile?

La solution

La plupart de ce que je sais de la machine virtuelle Java provient des documents Sun. Ils ont d'excellents livres blancs sur la machine virtuelle HotSpot: http://java.sun.com/javase/technologies/hotspot/index.jsp

Vous avez parlé de performance. Vous voudriez peut-être vous intéresser aux documents de performance Sun: http://java.sun.com/docs/performance/

Pour une approche plus concrète, essayez de regarder Kaffe . Cela vous montrera ce que fait une machine virtuelle, mais pas nécessairement le fonctionnement du code Java dans la machine virtuelle Java de Sun:

  

Kaffe est une implémentation en salle blanche de la machine virtuelle Java, ainsi que les bibliothèques de classes associées nécessaires pour fournir un environnement d'exécution Java.

Et OpenJDK est un excellent endroit pour apprendre comment la plate-forme Java est implémentée: http://openjdk.java.net/

Autres conseils

Chapitres de "À l'intérieur de la machine virtuelle Java 2":

http://www.artima.com/insidejvm/ed2/index.html

"Sous le capot" articles de Bill Venners

http://www.artima.com/underthehood/index.html

Il existe également "Jasmin", un membre de la machine virtuelle Java, si vous souhaitez vous salir les mains et essayer une programmation de bas niveau avec la machine virtuelle.

http://jasmin.sourceforge.net/

Le premier choix évident est la spécification de la machine virtuelle Java . Il existe également la page Wikipedia , qui renvoie à des ressources supplémentaires.

Si votre motivation est de savoir comment écrire un code qui fonctionne plus rapidement ou qui utilise moins de mémoire, les spécifications de l'ordinateur virtuel ne vous aideront pas trop.

Les spécifications de la machine virtuelle ne sont pas conçues pour vous fournir des informations à ce sujet. Elles sont conçues pour permettre aux développeurs de machines virtuelles de savoir, en gros, comment implémenter la machine virtuelle.

Cela étant dit, vous ne pouvez pas vous empêcher de le lire.

Le meilleur moyen d’en savoir plus sur les problèmes de vitesse / mémoire est à un niveau beaucoup plus élevé. Il existe un grand nombre de livres qui vous aideront à obtenir un code plus rapide / plus clair.

Un profileur est un outil précieux pour tester votre code afin de voir ce qui est plus rapide / utilise moins de mémoire. Profil, voir ce qui est lent / utilise beaucoup de mémoire, changez-le, profilez, voyez ce que les changements ont fait.

Voici une explication succincte du tas, de l’allocation d’objets et de la récupération de place, Vous pouvez explorer plus à partir de là.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top