awesome-everything EN
↑ Обратно к восхождению

Производительность

Cache vs big-O: тест на свободное воспроизведение

Суть Промпты на свободное воспроизведение по всему юниту. Сначала ответь по памяти, затем раскрой модельный ответ и сравни.
Высота — путь к senior
НольJuniorMiddleSenior
Ты на senior-высоте — в орбите
◷ 14 min

Воспроизведение по памяти бьёт перечитывание. На каждый промпт скажи или запиши полный ответ из памяти до того, как откроешь модельный — именно усилие припоминания чинит ментальную модель, а не узнавание правильно выглядящего варианта.

Цель

Восстанови костяк юнита, не подглядывая: почему паттерн доступа бьёт число операций, как cache line порождает false sharing, когда сортировка бьёт branchless, почему SoA включает SIMD и какая petlя perf-stat связывает всё вместе.

Вспомните перед уходом
  1. 01
    Почему O(N) сканирование contiguous массива может бить O(log N) обход дерева в production, и где это перестаёт быть верным?
  2. 02
    Объясни false sharing: как протокол MESI превращает независимые записи на поток в баг производительности, и как его обнаружить и исправить.
  3. 03
    Когда сортировка (O(N log N)) бьёт branchless-переписывание для data-dependent ветки, а когда branchless — лучший инструмент?
  4. 04
    Почему SoA включает SIMD там, где AoS вынуждает gather/scatter, и в чём размен?
  5. 05
    Помимо cache hit rate, какие два ограничения лимитируют memory-bound цикл, и как отличить их от cache miss?
  6. 06
    Сформулируй петлю инженерии производительности для этого юнита и какая метрика указывает на какой класс фикса.
Итог

Если ты восстановил каждый ответ по памяти, ты держишь костяк юнита: memory hierarchy задаёт ~100x константу, которую big-O игнорирует; cache lines — это 64-байтные единицы владения, превращающие соседние записи в false sharing; сортировка и branchless — два инструмента для одной проблемы непредсказуемой ветки; SoA разблокирует SIMD и bandwidth, которые AoS блокирует; а петля perf-stat сопоставляет каждую метрику её фиксу. Сначала измеряй, назови причину в константном множителе, исправь раскладку или ветки, перемеряй.

Продолжить восхождение ↑Cache vs big-O: чтение кода и раскладки
хоткеи развернуть
поиск
K
пред. пьеса
k
след. пьеса
j
тиры
t
это меню
?
sources3
expand
  1. 01
  2. 02
  3. 03

Trademarks belong to their respective owners. Editorial reference only.