Здравствуйте. Посоветуйте пожалуйста что можно полезного почитать по оптимизации уже существующих java-программ (настройки jvm и тд и тп), а также по написанию наиболее оптимизированного java-кода с нуля, оптимизация процессорного времени, потребления памяти и тд. Хочу почитать что-то именно касаемо java и jvm а не фундаментальные понятия алгоритмов и подобного. Например - какие структуры данных в каких ситуациях нужно использовать для большей эффективности. Что-то вроде паттернов по оптимизации, если такое высказывание корректно)) Спасибо
2 Answers
Всё что касается оптимизации производительности вообще касается и Java + надо понимать, как работает компьютер, как работает физическая оперативная память, как работает процессор и кэш, знать как работают блокировки, атомарные операции и т.п., понимать как устроена сама JVM, как работает JIT (Just-In-Time Compiller) и как работает GC. Я боюсь что нет книги, способной охватить всё это разом.
По общим алгоритмам ясное дело книг хватает.
По работе железа тут вам поможет изучение (хотя бы беглое ассемблера). По работе и оптимизации по памяти есть книга Криса Касперски "Техника оптимизации программ. Эффективное использование памяти" - содержит весьма полезные сведения о работе памяти.
Про JIT скорее всего просто напросто нет книг, так что копайте через гугл, чтобы понять.
Про GC есть полно книг по теории сборки мусора и менеджменту ресурсов. Про именно GC из Java есть полно статей, на том же хабре.
Ко всему этому надо добавить всякие стандартные вещи, такие как Java SE Performance at a Glance, Java Performance Tuning, Java Concurrency in Practice.
Была ещё такая книжка Горький вкус Java. Она устарела по технологиям, но там много важный и полезных идей, в том числе и по перфомансу. Брать оттуда рашения напрямую нельзя, но там совершенно точно определяется, на чём люди горят и как исправлять.
Вообще, производительность Java-приложений складывается из множества аспектов. Многие из них описываются в википедии.
- 19,707
- 1
- 33
- 39
-
+1, хабр полезно проверять регулярно, - там часто проскакивают статьи на тему перфоманс java. при чем разного уровня сложности – jmu Dec 09 '11 at 23:52
в принцыпе я не отвергаю того что читать литературу полезно но теория без практики - ничто – jmu Dec 09 '11 at 23:50