воскресенье, 26 августа 2018 г.

Java Performance: The Definitive Guide by Scott Oaks

       На днях дочитал книгу - 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 
         В общем и целом могу сказать что эта книга заслуживает прочтения.