Настроювання продуктивності — наука експериментальна, але це не означає, що інженери мають вдаватися до здогадів і фольклору, щоб виконати свою роботу (хоча часто трапляється саме так). За допомогою цієї практичної книги розробники середньої та високої кваліфікації, що працюють зі складними стронями технологій, навчаться настроювати високу продуктивність Java-застосунків, використовуючи кількісний, що надає перевірки підхід.
У більшості інформаційних ресурсів про продуктивність зазвичай обговорюються теорія та внутрішній пристрій віртуальних машин Java, але в цій книзі основна увага приділяється практичним можливостям настроювання продуктивності способом вивчення широкого ряда аспектов. У книзі немає простих рецептів, порад і трюків або алгоритмів. Настроювання продуктивності — це процес внесення змін і вимірювання отриманих результатів, що вимагає старанності.
Дізнайтеся, як принципи та технології Java найкраще використовують сучасні апаратні засоби та операційні системи.
Досліджуйте різні тести продуктивності та поширені антипатерни, які можуть завести вашу команду в глухий кут.
Вивчіть пастки вимірювань показників продуктивності Java і вади мікротестування.
Пориньте в збирання сміття, протоколування, моніторинг, настроювання та інструменти JVM.
Досліджуйте JIT-компіляцію та методи підвищення продуктивності в мові Java.
Вивчіть аспекти продуктивності API колекцій і питання паралельних обчислень у Java.
Об авторе
Бенджамін Еванс — співзасновник і член команди технологів jClarity, стартапа про вироблення інструментарію для роботи в галузі продуктивності, покликаного допомогти командам розробників на Java.
Джеймс Гуф — розробник на Java та автор книг.
Працює в Morgan Stanley над створенням бізнес-застосунків.
Кріс Ньюланд — старший розробник і керівник команди в ADVFN, де він використовує Java для оброблення даних фондового ринку в режимі реального часу. Також є винахідником JITWatch.
"За останні 20 років я витратила чимало часу на розуміння деталей того, що відбувається всередині JVM, але я навчилася чогось нового, прочитавши цю книгу. Вона добре написана, легко читається і містить масу корисної інформації як для програміста-початківця, так і для професіонала. Незалежно від того, на чому ви працюєте, на виділеному сервері з двомастами ядер або на невеликій машині з обмеженими ресурсами під керуванням Linux, ця книга допоможе вам отримати максимальну віддачу від вашого Java-застосунку".
—Кристин Флуд (Christine H. Flood)
Red Hat, Inc.
Файли до книги доступні на сайті видавництва.
Оголовлення
Введення 21
Глава 1. Оптимізація та продуктивність 25
Глава 2. Огляд JVM 39
Глава 3. Апаратне забезпечення й операційні системи 59
Глава 4. Паттерни й антипатерни тестування продуктивності 87
Глава 5. Мікротести та статистика 115
Глава 6. Збирання сміття 145
Глава 7. Вглибки збирання сміття 171
Глава 8. Протоколування, моніторинг, настроювання та інструменти збирання сміття 203
Глава 9. Виконання коду в JMV 231
Глава 10. JIT-компіляція 257
Глава 11. Моваві методи підвищення продуктивності 295
Глава 12. Методи підвищення продуктивності паралельної роботи 325
Глава 13. Профільування 361
Глава 14. Високопродуктивне протоколування й обмін повідомленнями 393
Глава 15. Java 9 і майбутні версії 421
Предметний покажчик 445