2010-10-18 3 views
12

Название довольно хорошо отражает мой вопрос. Мне интересно, есть ли хороший ресурс или точка отскока для вопросов о том, как JVM (а не только HotSpot, но это, очевидно, место для начала) реализует или обрабатывает определенную функциональность? Я не ищу материал, который находится в JLS или JVM Spec. - Я знаю, что нужно туда идти первым.Каноническая ссылка на внутренние компоненты JVM для программистов/разработчиков

Например,: При попытке понять проблемы с производительностью мы часто беседуем не о том, что говорит спецификация, а о том, какие современные лучшие практики выглядят в практических реализациях. Например, существует некоторая городская мифология, в которой говорится, что «конечные классы лучше работают на Java, потому что JVM может встроить или иным образом оптимизировать такие вещи». Есть ли общий ресурс, к которому мы можем обратиться, чтобы оценить эти утверждения, которые плавают вокруг?

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

Просто для того, чтобы обезопасить несколько потенциальных жалоб: 1) Это не значит, что вы ищете преждевременную оптимизацию (и на самом деле, лучшее понимание платформы должно отговаривать лучшего образованного разработчика!); и 2) Я знаю, что Java-программисты должны сосредоточиться на хорошем, портативном коде с любым кодом, но для многих из нас особенности платформы в конечном итоге важны!

Это было вдохновлено некоторыми полезными комментариями к specific question от Thorbjørn Ravn Andersen. Я рад собрать другие полезные примеры за пределами того, что я цитировал выше, чтобы мотивировать, почему люди могут захотеть таких ресурсов.

Некоторые интересные вопросы по СО: Tail-call optimization in JVM, Killer JVM features, optimizations that are going to be useless tomorrow, Differences between JVM implementations.

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

ответ

5
  • OpenJDK "JVM Internals" wiki это место, чтобы начать для HotSpot
  • Oracle, Java SE 6 Performance White Paper и его предшественники дают много понимания, хотя и не организован мой вопрос сам по себе
  • О синхронизации для HotSpot см мой answer here ,
+0

Ну, я дал ему неделю, я собираюсь отметить правильный ответ, ожидая, что кто-то еще предоставит что-то лучшее. – andersoj

0

Некоторое время назад я собрал краткое резюме о what advanced programmer should know about jvm internals и помог ему лучше понять параллелизм, gc, jit и т. Д. Это концентрированное резюме, основанное на спецификации и OpenJDK.

Смежные вопросы