На днях дочитал книгу - Java Performance: The Definitive Guide by Scott Oaks. Могу сказать что мне очень понравилось тот уровень детализации с которым описана работа GC(Garbage Collector). Все что я читал до этого про сборщики мусора в Java было недостаточно глубоким и не отвечало на все мои вопросы. Автор весьма обстоятельно подошел к разбору всех возможных сценариев в работе сборщика мусора. Неплохо было рассказано про компилятор, этапы компиляции и перекомпиляции. Много времени было уделено обзору инструментов. А вот главы посвященные производительности энтерпрайзных приложений мне показались довольно поверхностными и скучными.
Чего мне не хватило в этой книге - это описание memory layout. Я считаю что используемые алгоритмы во многом предопределены используемыми структурами данных. И если подробно рассказать о внутренних структурах данных используемых JVM то гораздо проще будет понять особенности ее поведения в той или иной ситуации.
В последнее время я взял за правило выписывать по ходу чтения отдельные моменты которые мне казались заслуживающими внимания. Туда же я включил ссылки на инструменты или флаги JVM которые мне показались полезными. Эти записки сделаны на гремучей смеси безграмотного английского и русского языков, но возможно сама информация окажется кому-то полезной - https://docs.google.com/document/d/1-GapN42d-zcPuYYWI-iqIZJtb8KJWKpd1b8S-rX_qZ8/edit?usp=sharing
В общем и целом могу сказать что эта книга заслуживает прочтения.
Комментариев нет:
Отправить комментарий