Замер P2 и P6: главные статьи — физика двух Char и луч видимости
Синяя фаза (286 518) разложена зондами на 12 участков, process_trobs (89 784) — на три. Гипотеза, с которой я входил в замер, ОТВЕРГНУТА. Я ждал, что дорого обходятся банковые трамплины на спецсобытиях уровней — по аналогии с pop_clip_char_top, где трамплин ради одной проверки стоит 8 892. На деле три спецсобытия (skel, mouse, killed_shadow) вместе стоят 1 650: они гейтятся внутри и на уровне 11 выходят сразу. Настоящие статьи синей: физика двух Char 105 246 (61 266 Кид + 43 980 страж) heal двух Char 67 734 луч видимости стража до 37 032 (вместе с frame_timers) pop_ctrl_tick 18 648 логика стража 19 932 Физика съедает 13,7 % работы кадра при том, что ОБА персонажа стоят и кадр позы не меняется. Цена измерена, причина нет — это отдельная позиция P2a. Луч видимости считается каждый кадр, хотя никто не двигался: гейт по смене позиции/комнаты — позиция P2b, ждём −30 000. heal отдельной правки не требует, он уйдёт вместе с P1/P3. process_trobs: префетч кодов тайлов с маппингом окна 0 — 11 058, обход самих trob'ов ~43 000 (pop_trob_modif зовётся банковым вызовом на КАЖДЫЙ trob, хотя комната одна), два факела ~36 000. Цена одного pop_pot_b измерена отдельно: 17 346, и это единственная группа в распределении — значит в кадре его зовут только факелы. Пиксели пламени 16x18 — 1 716, то есть 10 % цены. Заодно посчитано, достижим ли период 3 растра: снять надо 338 000, а сумма ВСЕХ известных позиций даёт 357 000, из которых 160 000 держатся на одной (P1). Цель достижима, но без запаса. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -633,6 +633,8 @@ void pop_process_trobs(uint8_t cur_room) __banked
|
||||
pop_level_access_end();
|
||||
}
|
||||
|
||||
pop_dbg_m8(); /* ЗАМЕР: префетч кодов тайлов сделан */
|
||||
|
||||
for (i = 0; i < trobs_count; i++) {
|
||||
uint8_t room = trobs[i].room;
|
||||
uint8_t tp = trobs[i].tilepos;
|
||||
|
||||
Reference in New Issue
Block a user