2009-03-06 15 views
12

Chcę poznać wnętrze maszyny JVM, jej działanie i szczegóły, które mają znaczenie. Czy możesz zaproponować jakieś źródło lub najlepszą książkę do tego dostępną?Zrozumienie maszyny JVM Lepiej

Odpowiedz

5

Większość tego, co wiem o JVM pochodzi z dokumentów Sun. Mają kilka świetnych whitepapers na HotSpot VM: http://java.sun.com/javase/technologies/hotspot/index.jsp

pan wspomniał wydajności, więc może byłbyś zainteresowany docs wydajności Sun: http://java.sun.com/docs/performance/

na bardziej ręce na podejściu, spróbuj poszukać w Kaffe. To pokaże ci, co czyni maszynę wirtualną, ale niekoniecznie jak kod Java działa w JVM firmy Sun:

Kaffe to czysty realizacja pokój z maszyną wirtualną Java, a także związane z nimi bibliotek klas potrzebnych do zapewnienia środowiska wykonawczego Java środowisko.

A OpenJDK jest doskonałym miejscem, aby dowiedzieć się, jak Platforma Java jest realizowany: http://openjdk.java.net/

0

Jeśli motywacja jest, aby dowiedzieć się, jak napisać kod, który działa szybciej i zużywa mniej pamięci spec VM nie pomoże zbyt wiele.

Specyfikacja maszyny wirtualnej nie została zaprojektowana w celu dostarczenia informacji na ten temat. Została zaprojektowana tak, aby umożliwić programistom VM przybliżenie, w przybliżeniu, jak wdrożyć maszynę wirtualną.

Powiedziawszy, że nie może się z tym pogodzić.

Najlepszym sposobem, aby dowiedzieć się o problemach z prędkością/pamięcią, jest znacznie wyższy poziom, istnieje wiele książek, które pomogą Ci szybciej/szczuplejsze kodu.

Profiler jest nieocenionym narzędziem do testowania kodu, aby zobaczyć, co jest szybsze/zużywa mniej pamięci. Profil, zobacz, co jest wolne/zużywa dużo pamięci, zmień go, profil, zobacz, co zrobiły zmiany.

0

Poniżej znajduje się link do mojej dogłębnej oczywiście Java-line na platformie Udemy. Ma on cały obszerny rozdział na temat JVM z około 3 godzinami wideo. Obejmuje wszystko od Lifetime typu, obszarów danych runtime, refleksji, garbage collection, stosów stert i zestaw instrukcji. W książce online "Inside the Java 2 Virtual Machine" wymienionej w jednej z odpowiedzi znajduje się jeden z podręczników.

https://www.udemy.com/java-in-depth-become-a-complete-java-engineer/

Powiązane problemy