diff --git a/applications/PoP/docs/perf_registry.md b/applications/PoP/docs/perf_registry.md index 99b7cb4..925c4c9 100644 --- a/applications/PoP/docs/perf_registry.md +++ b/applications/PoP/docs/perf_registry.md @@ -352,6 +352,30 @@ SDCC z80 разворачивается в `sbc` плюс `jp PO / xor 0x80 / jp `pop_sprite_size_limits`). **−276 в статике, −1 134 в циане динамики**, плюс 24 байта `_DATA`. +### P6a. Кэш указателя модификаторов ✅ 2026-08-19 — −840 (ждали −20 000) + +`pop_trob_modif` объявлен `__banked`, а звался на КАЖДЫЙ trob внутри цикла +`pop_process_trobs`, хотя комната у них в подавляющем большинстве кадров +одна. Указатель теперь кэшируется между итерациями. + +Цикл trobs 78 726 → **74 964**, работа кадра 438 324 → **437 484**. + +**Оценка в реестре была завышена в двадцать раз**, и стоит понять почему: +я перенёс её по аналогии с лучом видимости (P2b), где трамплин звался +ДЕВЯТЬ раз за кадр. Здесь trob'ов в комнате всего несколько, и кэш +экономит два-три вызова. **Урок: «тот же паттерн» не означает «тот же +порядок величины» — считать надо число вызовов, а не узнавать шаблон.** + +### P6b. Кэш префетча кодов тайлов — НЕ ДЕЛАЛОСЬ + +Префетч (`pop_level_access_begin/end` плюс чтение кода на каждый trob) +стоит **11 058** за кадр. Кэшировать мешает инвалидация: код тайла меняет +`pop_level_set_tile` (кнопка → пол, loose → empty), вход в комнату и +добавление trob'а — пропустить хоть один источник значит получить +застывшую анимацию. С учётом того, что P6a дал 840 вместо 20 000, +ожидаемый выигрыш тут тоже стоит считать скромным, а риск он несёт +несоразмерный. + ### P18. Метка «фон трогали» огрублена по X — ОТЛОЖЕНО (решение пользователя) **Найдено 2026-08-19 пользователем:** Кид перерисовывается, хотя с пламенем @@ -625,7 +649,8 @@ BUG-LATTICE-DOORTOP, BUG-SEAM-WEDGE-1) — только отдельным за | после P15, тяжёлая | 617 487 | 245 808 | 181 761 | 192 090 | **4 везде** | | после P16, лёгкая | 438 978 | 218 052 | 181 494 | 39 438 | 4 | | ~~после P4~~ | ~~438 570~~ | | | | правка **ОТКАЧЕНА** | -| **после P17, лёгкая** | **438 324** | 217 590 | 181 098 | 39 192 | 4 | +| после P17, лёгкая | 438 324 | 217 590 | 181 098 | 39 192 | 4 | +| **после P6a, лёгкая** | **437 484** | 217 704 | 180 252 | 39 306 | 4 | | **после P17, тяжёлая** | **603 684** | 241 956 | 181 464 | 180 270 | 4 | Итог восьми позиций: **801 768 → 464 796 в лёгкой позиции (−42 %)** и @@ -637,7 +662,7 @@ BUG-LATTICE-DOORTOP, BUG-SEAM-WEDGE-1) — только отдельным за Цель: работа ≤ 430 000, тогда период станет 3 растра (хвост кадра — три `gfx_wait_vsync`). -- в ЛЁГКОЙ позиции снять надо **8 324**; +- в ЛЁГКОЙ позиции снять надо **7 484**; - в ТЯЖЁЛОЙ — **173 684**. **Лёгких путей больше не осталось.** За 2026-08-19 отвергнуто ЧЕТЫРЕ