Andrey Epifancev 8e9f53a478 perf: скрипты разбора и сводные данные прогонов 20261026
- perf/analysis: разбор trace (timeline_breakdown), CPU-профилей с source maps
  (cpuprofile_top), heap snapshots (heapdiff), циклов памяти, сравнения масштабов,
  ручной EXPLAIN вложенных запросов (explain_manual), API против X-DB-Time-Ms
  (api_split), сводка горячих точек; тесты ядра в perf/tests/test_analysis.py
- perf/e2e/scenarios/hotspots.spec.ts: CPU-профиль, рендеры React, мутации DOM
  после фильтра, рост CSS-правил по циклам (вне run-all)
- prod-сборка с source maps: PERF_SOURCEMAP=1, perf/stand.sh web-sourcemap (:8082)
- perf/report-data/20261026-s1, 20261026-s2 (summary, sql, analysis, explain-manual),
  t5-types (иллюстрация CPU 6x)
- design.md: решения T10b без обсуждения

Refs #202

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-26 12:43:46 +04:00

6.5 KiB
Raw Blame History

Горячие точки: сводка 20261026-hot (hotspots.spec.ts, hotspots_summary.py)

Рендеры React на шаг колеса 200 px (профилирующая сборка :8081)

target роль шагов коммитов/шаг рендеров компонентов/шаг из них Styled(td)/шаг self React, мс main thread/шаг, мс
FORM_2/AHR/null:y rf 80 3.31 14808 1696 3708 76.5
FORM_2/AHR/null:x rf 80 3.49 17090 2007 4222 81.3
FORM_4/STRUCTURE/null:y rf 80 3.75 17932 2021 4439 92.4
project/LIMIT/1/2026:y rf 80 3.73 15921 1961 3937 79.5
svod/svod1_MAIN:y dfip 80 1.27 9657 1731 3768 63.3
svod/projects_summaries:y dfip 80 2.7 16018 2756 5268 94.7
svod/svod2_GO:y dfip 80 2.01 39768 7810 10317 179.0
  • FORM_2/AHR/null:y: ForwardRef(Styled(td)) 135665/1785.1 мс; MRT_TableBodyCell 129295/288.5 мс; ForwardRef(Styled(Component)) 52005/208.2 мс; ForwardRef(TableCell) 135665/172.2 мс; MRT_TableBodyCellValue 122490/163.3 мс; ForwardRef(Tooltip) 17400/126.2 мс
  • FORM_2/AHR/null❌ ForwardRef(Styled(td)) 160576/2068.7 мс; MRT_TableBodyCell 153432/281.2 мс; ForwardRef(Styled(Component)) 59916/248.8 мс; ForwardRef(TableCell) 160576/216.5 мс; MRT_TableBodyCellValue 148392/189.5 мс; ForwardRef(Tooltip) 20014/152.8 мс
  • FORM_4/STRUCTURE/null:y: ForwardRef(Styled(td)) 161650/2158.0 мс; MRT_TableBodyCell 153400/354.1 мс; ForwardRef(Styled(Component)) 63000/239.4 мс; ForwardRef(TableCell) 161650/223.7 мс; MRT_TableBodyCellValue 145730/176.4 мс; ForwardRef(Tooltip) 21065/158.9 мс
  • project/LIMIT/1/2026:y: ForwardRef(Styled(td)) 156842/2050.5 мс; MRT_TableBodyCell 149980/248.8 мс; ForwardRef(Styled(Component)) 53547/217.8 мс; ForwardRef(TableCell) 156842/213.0 мс; MRT_TableBodyCellValue 142481/174.5 мс; ForwardRef(Tooltip) 17914/131.8 мс
  • svod/svod1_MAIN:y: ForwardRef(Styled(td)) 138474/1902.3 мс; MRT_TableBodyCellValue 135177/1152.5 мс; MRT_TableBodyCell 138474/241.7 мс; ForwardRef(TableCell) 138474/174.9 мс; ForwardRef(Styled(tr)) 3297/46.3 мс; ForwardRef(Styled(Component)) 10099/46.0 мс
  • svod/projects_summaries:y: ForwardRef(Styled(td)) 220500/2973.7 мс; MRT_TableBodyCellValue 213150/1104.3 мс; MRT_TableBodyCell 220500/351.0 мс; ForwardRef(TableCell) 220500/272.0 мс; ForwardRef(Styled(tr)) 7350/92.9 мс; ForwardRef(Styled(Component)) 22566/92.7 мс
  • svod/svod2_GO:y: ForwardRef(Styled(td)) 624800/7648.1 мс; MRT_TableBodyCell 624800/1152.4 мс; ForwardRef(TableCell) 624800/745.0 мс; MRT_TableBodyCellValue 624800/307.0 мс; MRT_TableBodyRow 5680/147.6 мс; Insertion 642002/126.4 мс

CPU-профили (prod-сборка с source maps :8082; разбор - cpuprofile-top.md)

target роль шагов main thread/шаг под профайлером, мс профиль
FORM_2/AHR_RENT/null:y rf 80 7.7 artifacts/hot-FORM_2_AHR_RENT_null-y.cpuprofile
FORM_2/AHR/null:y rf 80 80.5 artifacts/hot-FORM_2_AHR_null-y.cpuprofile
FORM_2/AHR/null:x rf 80 80.9 artifacts/hot-FORM_2_AHR_null-x.cpuprofile
FORM_4/STRUCTURE/null:y rf 80 91.1 artifacts/hot-FORM_4_STRUCTURE_null-y.cpuprofile
project/LIMIT/1/2026:y rf 80 77.3 artifacts/hot-project_LIMIT_1_2026-y.cpuprofile
svod/svod1_MAIN:y dfip 80 60.4 artifacts/hot-svod_svod1_MAIN-y.cpuprofile
svod/projects_summaries:y dfip 80 90.7 artifacts/hot-svod_projects_summaries-y.cpuprofile
svod/svod2_GO:y dfip 80 160.7 artifacts/hot-svod_svod2_GO-y.cpuprofile

Фильтр свода: мутации DOM контейнера .MuiTableContainer-root за окно наблюдения после ввода «1»

режим target main thread за окно, мс кадров кадров с мутацией первая мутация (кадр) long tasks виды мутаций рендеры React
react svod/svod2_GO:filter 804 1796 0 -1 1 (137 мс) нет 6 коммитов / 18021
cpu svod/svod2_GO:filter 661 1798 0 -1 1 (103 мс) нет коммитов /
cpu svod/svod2_RF:filter 743 1796 1 20 1 (139 мс) attributes:tbody.MuiTableBody-root@class ×1 коммитов /
cpu svod/svod1_MAIN:filter 601 1800 1 20 1 (71 мс) attributes:tbody.MuiTableBody-root@class ×1 коммитов /

Рост CSS-правил и matchMedia по циклам: FORM_2/AHR/null:cssgrowth

цикл main thread/шаг, мс CSS-правил @media style вызовов matchMedia нетто listeners matchMedia
0 2874 73 5
1 78.1 3232 96 5
2 77.8 3238 96 5
3 77.7 3240 96 5
4 78.4 3240 96 5
5 77.7 3242 96 5
6 76.7 3243 96 5
7 78.4 3243 96 5
8 79.7 3244 96 5
9 78 3245 96 5
10 77.1 3245 96 5
11 78.7 3245 96 5
12 79.7 3245 96 5
13 78.5 3246 96 5
14 76.7 3249 96 5
15 78.1 3249 96 5

Модалки (повтор на восстановленных данных)

модалка роль клик → кадр, мс main thread, мс
dict_vsp_add admin 165.3 169.4
dict_vsp_add admin 167.4 171.7
dict_vsp_add admin 185 189.5
dict_vsp_edit admin 183.5 190.0
dict_vsp_edit admin 188.4 199.3
dict_vsp_edit admin 193.5 204.0
dict_vsp_export admin 150.8 154.2
dict_vsp_export admin 149.2 153.6
dict_vsp_export admin 147.2 151.6
модалка коммитов рендеров self, мс топ
dict_vsp_add 10 26971 92.9 ForwardRef(Styled(td)) 2896/37.0; ForwardRef(Styled(span)) 2851/9.1; ForwardRef(TableCell) 2896/4.4; MRT_TableBodyCell 2880/4.4
dict_vsp_edit 12 27287 93.3 ForwardRef(Styled(td)) 2896/37.2; ForwardRef(Styled(span)) 2877/9.6; MRT_TableBodyCell 2880/7.1; ForwardRef(TableCell) 2896/3.3
dict_vsp_export 9 25722 82.2 ForwardRef(Styled(td)) 2896/43.1; ForwardRef(Styled(span)) 2728/9.2; MRT_TableBodyCell 2880/5.0; ForwardRef(TableCell) 2896/3.6