Производительность
Горячие пути: тест на свободное припоминание
Припоминание лучше перечитывания. Для каждого промпта проговори или запиши полный ответ по памяти прежде, чем открыть модельный ответ — именно усилие припоминания закрепляет диагностический цикл.
Реконструируй спину юнита, не подглядывая: почему широкий лист — лишь симптом, пять форм и их сигнатуры, как цепочка parent/child находит место фикса, когда решают аппаратные счётчики, цикл fix-and-verify и где на самом деле прячутся регрессии.
- 01Почему назвать широкий лист недостаточно и что ещё надо прочитать прежде, чем выбирать фикс?
- 02Перечисли пять форм hotspot'а, каждую с одной сигнатурой в профиле и её семейством фиксов.
- 03Как parent chain и child chain каждая находит, где применить фикс?
- 04Когда тянуться к аппаратным счётчикам вместо одного чтения flame graph, и что они раскрывают?
- 05Сформулируй цикл fix-and-verify и что означает каждый из двух его исходов-провалов.
- 06Почему регрессии горячих путей прячутся в хвостовой задержке, а не в среднем CPU%, и как их ловить?
Если ты реконструировал каждый ответ по памяти, ты держишь диагностический цикл юнита: широкий лист — это симптом, а не причина; классифицируй его в одну из пяти форм (плюс JIT-деопт и случаи, видимые только через счётчики — false sharing, native bridge); parent chain решает caller-fix против leaf-fix, а child chain решает этот-уровень против на-уровень-ниже; аппаратные счётчики и TMA разрешают неоднозначность compute-vs-memory; цикл fix-and-verify требует доказательства local-и-headline; а регрессии прячутся в хвосте, а не в среднем. Сначала диагноз, потом фикс одной вещи, докажи его.