Подтвердить что ты не робот

Понимание JVM Better

Я хочу знать внутренности JVM, то, как он работает, и детали, которые имеют значение. Можете ли вы предложить любой ресурс или лучшую книгу для этого?

4b9b3361

Ответ 1

Большая часть того, что я знаю о JVM, поступает из документов Sun. На виртуальной машине HotSpot есть несколько замечательных документов: http://java.sun.com/javase/technologies/hotspot/index.jsp

Вы упомянули о производительности, поэтому, возможно, вас будут интересовать документы о производительности Sun: http://java.sun.com/docs/performance/

Для более внимательного подхода попробуйте посмотреть Kaffe. Это покажет вам, что делает виртуальная машина, но не обязательно, как работает Java-код в Sun JVM:

Kaffe - это чистая реализация виртуальной машины Java, а также связанные библиотеки классов, необходимые для обеспечения среды выполнения Java.

И OpenJDK - отличное место, чтобы узнать, как реализована платформа Java: http://openjdk.java.net/

Ответ 2

Главы из "Внутри виртуальной машины Java 2":

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

"Под капотом" статьи Билла Веннера

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

Там также "Jasmin", член JVM, если вы хотите, чтобы ваши руки были грязными, и попробуйте программирование на низком уровне с помощью JVM.

http://jasmin.sourceforge.net/

Ответ 4

Если ваша мотивация заключается в том, чтобы узнать, как писать код, который работает быстрее или использует меньше памяти, спецификация VM не поможет слишком много.

Спецификация VM не предназначена для предоставления вам информации об этом, она предназначена для того, чтобы разработчик VM знал, примерно, как реализовать виртуальную машину.

Говоря это, он не может читать его.

Лучший способ узнать о проблемах с быстродействием/памятью на гораздо более высоком уровне, есть количество книг, которые помогут вам быстрее/компактнее.

Профайлер - бесценный инструмент для проверки вашего кода, чтобы узнать, что быстрее/использует меньше памяти. Профиль, посмотрите, что медленное/использует много памяти, измените его, профиль, посмотрите, что сделали изменения.

Ответ 5

Ниже приведена ссылка на мой углубленный онлайн-курс Java на платформе Udemy. Он имеет одну всеобъемлющую главу о JVM с примерно 3 часами видео. Он охватывает все, начиная с Lifetime типа, областей данных времени выполнения, отражения, сбора мусора, кучи и стеков и набора команд. "Внутри виртуальной машины Java 2 Virtual Machine", упомянутая в одном из ответов, используется как одна из справочников.

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