Память, GC и производительность

В этой теме ты разберёшь жизненный цикл памяти и научишься выбирать измерение, которое отвечает на конкретный вопрос о расходе ресурсов.

  1. 3.1 Стек и куча, escape analysis

    Разберём escape analysis как решение компилятора о времени жизни. Научимся проверять его диагностиками и измерять эффект, не превращая placement в обещание API.

  2. 3.2 Сборщик мусора

    Проследим достижимость объектов и фазы GC, затем свяжем GOGC и GOMEMLIMIT с целью ограничивать ресурсы, а не с фиксированным временем сборки.

  3. 3.3 Профилирование и бенчмарки

    Выберем профиль по вопросу о CPU, памяти или расписании и научимся снимать данные в воспроизводимом окне.

  4. 3.4 Оптимизации

    Проверим конкретные оптимизации через benchmark и учтём, что снижение одной метрики может не ускорить систему целиком.