Ich möchte die Interna der JVM, wie es funktioniert und die Details, die von Bedeutung sind, kennen. Können Sie mir eine Ressource oder ein bestes Buch dafür vorschlagen?Verständnis von JVM Besser
Antwort
Das meiste, was ich über die JVM weiß, stammt aus der Sun-Dokumentation. Sie haben einige großen White Paper auf der HotSpot VM: http://java.sun.com/javase/technologies/hotspot/index.jsp
Sie Leistung erwähnt, vielleicht würden Sie in der Sun Performance docs interessieren: http://java.sun.com/docs/performance/
Für eine Hand am Ansatz, versuchen auf Kaffe suchen. Dies werden Ihnen zeigen, was eine virtuelle Maschine tut, aber nicht unbedingt, wie Java-Code in Sun JVM arbeitet:
Kaffe ist ein Reinraum Implementierung der Java Virtual Machine sowie die dazugehörigen Klassenbibliotheken benötigt, um einen Java-Runtime zur Verfügung zu stellen Umgebung.
Und das OpenJDK ist ein großartiger Ort, um zu erfahren, wie die Java-Plattform implementiert: http://openjdk.java.net/
Die offensichtliche erste Wahl ist The Java Virtual Machine Specification. Es gibt auch The Wikipedia Page, die auf zusätzliche Ressourcen verweist.
Kapitel von "Inside the Java 2 Virtual Machine":
http://www.artima.com/insidejvm/ed2/index.html
"unter der Haube" Artikel von Bill Venners
http://www.artima.com/underthehood/index.html
Es gibt auch "Jasmin", einen Assember für JVM, wenn Sie sich die Hände schmutzig machen wollen und versuchen, Low-Level-Programmierung mit der JVM.
Wenn Ihre Motivation, um herauszufinden, ist, wie Code zu schreiben, der schneller arbeitet oder weniger Speicher die VM-Spezifikation auch nicht viel helfen.
Die VM-Spezifikation wurde nicht entwickelt, um Ihnen Informationen darüber zu geben. VM-Entwickler sollten grob darüber informiert werden, wie die VM implementiert wird.
Das gesagt, es kann es nicht lesen.
Der beste Weg, um über Geschwindigkeit/Speicher Probleme zu erfahren, ist auf einem viel höheren Niveau, gibt es eine Reihe von Bücher, die Ihnen schneller/schlanker Code hilft.
Ein Profiler ist ein unschätzbares Werkzeug zum Testen Ihres Codes, um zu sehen, was schneller ist/weniger Speicher verbraucht. Profil, sehen, was langsam ist/verwendet viel Speicher, ändern Sie es, Profil, sehen Sie, was die Änderungen getan haben.
Unten ist ein Link zu meinem in eingehendem Online-Java Kurs auf Udemy Plattform. Es hat ein ganzes umfassendes Kapitel über JVM mit ungefähr 3 Stunden Video. Es umfasst alles von Lifetime eines Typs, Laufzeitdatenbereiche, Reflektion, Garbage Collection, Heap & Stacks und Befehlssatz. Das in einer der Antworten erwähnte Online-Buch "In der Java 2 Virtual Machine" wird als eines der Nachschlagewerke verwendet.
https://www.udemy.com/java-in-depth-become-a-complete-java-engineer/
Hier ist eine gute und kurze Erklärung des Haufens, Objekte Zuordnung und Müllabfuhr, Understanding Memory Management. Sie können mehr von dort aus erkunden.
- 1. List Verständnis Verständnis Fehler von Python Debugger
- 2. Verständnis von Monaden in Scala
- 3. JVM Implementieren von JRE
- 4. NUMA Bekanntheit von JVM
- 5. Finden Jvm von Java
- 6. Verständnis
- 7. Verständnis von boundCenterBottom()
- 8. Verständnis von Big O
- 9. Verständnis von Hash-Code
- 10. Verständnis `Kinder()` `von tr`
- 11. Verständnis von MySQL-Abfrage
- 12. Drucken Alle JVM Flags
- 13. Verständnis der Zeitwerte von Charles Debugging Proxy
- 14. Verständnis Ruby-Match-Methode von Regexp Klasse
- 15. Reduzieren von festgeschriebenem Heap-Speicher in JVM
- 16. Speicher außerhalb von JVM zuweisen und in JVM verwenden
- 17. Verständnis eines Wertes von * ngIf in Angular2
- 18. UnatisfiedLinkError Starten von JVM über Eclipse
- 19. Verständnis der Notwendigkeit von Android VSYNC Signalen
- 20. Jvm auf Multi-Core-
- 21. Verständnis der SQL-Definitionssyntax
- 22. Verstehen elasticsearch jvm Heap Nutzung
- 23. Verwendung von jQuery Object Verständnis
- 24. Verständnis von Pycharm abgeleitete Typhinweis
- 25. Verständnis der Gefahren von sprintf (...)
- 26. Verständnis Ausgabe von VectorAssembler --- Funken
- 27. Verständnis von os.fork und Queue.Queue
- 28. Verständnis von Oasis findlibParent Zweck
- 29. Verständnis von Mini-Kanrens Ausführungsmodell
- 30. Python dict Verständnis von Objekten