Вопрос

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

Это было полезно?

Решение

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

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

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

  

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

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

Другие советы

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

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

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

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

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

http://jasmin.sourceforge.net/

Первый очевидный выбор - Спецификация виртуальной машины Java . Также есть страница Википедии , которая ссылается на дополнительные ресурсы.

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

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

Это, как говорится, не может повредить читать.

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

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

Вот одно хорошее и краткое объяснение кучи, размещения объектов и сборки мусора. Общие сведения об управлении памятью . Вы можете изучить больше, начиная с этого.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top