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

866 lines
21 KiB
JSON

{
"a": "results/20261026-s1/artifacts/memory-cycle10.heapsnapshot",
"b": "results/20261026-s1/artifacts/memory-cycle20.heapsnapshot",
"total": {
"a_self_bytes": 23066796,
"b_self_bytes": 27208391,
"a_nodes": 364458,
"b_nodes": 463302,
"base_self_bytes": 12931501,
"base_nodes": 210912
},
"class_diff_top": [
[
"(native) blink::MediaQueryFeatureExpNode",
23161,
1852880,
23215,
46376,
1857200,
3710080
],
[
"(native) blink::MediaQuery",
23161,
741152,
23237,
46398,
743584,
1484736
],
[
"(native) blink::MediaQuerySet",
23161,
555864,
23238,
46399,
557712,
1113576
],
[
"(native) blink::HeapVectorBacking<cppgc::internal::BasicMember<const",
23161,
555864,
23295,
46456,
559000,
1114864
],
[
"(code)",
806,
238664,
69314,
70120,
6750428,
6989092
],
[
"(native) DOMRectReadOnly",
456,
25536,
800,
1256,
44800,
70336
],
[
"Object",
1121,
24616,
19311,
20432,
502232,
526848
],
[
"(native) blink::NetworkResourcesData::ResourceData",
70,
20160,
89,
159,
25632,
45792
],
[
"(native) blink::HeapHashTableBacking<blink::HashTable<cppgc::internal::BasicMember<const",
0,
16448,
20,
20,
19664,
36112
],
[
"(native) system",
405,
14107,
21520,
21925,
4430548,
4444655
],
[
"(number)",
1048,
12588,
18925,
19973,
15816,
28404
],
[
"(native) blink::XHRReplayData",
70,
12320,
73,
143,
12848,
25168
],
[
"(native) PerformanceResourceTiming",
70,
9520,
88,
158,
11968,
21488
],
[
"(native) LayoutShiftAttribution",
228,
9120,
400,
628,
16000,
25120
],
[
"(string)",
1372,
9112,
47563,
48935,
1521288,
1530400
],
[
"(native) blink::HashTrieNode<blink::CSSVariableData>",
31,
8432,
155,
186,
42160,
50592
],
[
"(native) LayoutShift",
54,
8208,
96,
150,
14592,
22800
],
[
"(native) LargestContentfulPaint",
40,
5440,
44,
84,
5984,
11424
],
[
"(array) (object elements)",
180,
4440,
3494,
3674,
154064,
158504
],
[
"(native) InteractionContentfulPaint",
40,
4160,
40,
80,
4160,
8320
],
[
"(native) blink::HeapHashTableBacking<blink::HashTable<blink::String,",
0,
4096,
8,
8,
9280,
13376
],
[
"Array",
180,
2880,
4143,
4323,
68232,
71112
],
[
"(native) blink::HeapHashTableBacking<blink::HashTable<cppgc::internal::BasicMember<blink::ContextLifecycleObserver,",
0,
2048,
8,
8,
5696,
7744
],
[
"(native) NavigationHistoryEntry",
9,
1728,
42,
51,
8064,
9792
],
[
"(native) blink::HeapHashTableBacking<blink::HashTable<int,",
0,
1024,
5,
5,
1320,
2344
],
[
"(native) blink::HeapVectorBacking<cppgc::internal::BasicMember<blink::PerformanceEntry,",
0,
832,
16,
16,
3936,
4768
],
[
"(native) blink::CSSVariableData",
12,
336,
1061,
1073,
61624,
61960
],
[
"(native) blink::CSSNumericLiteralValue",
10,
240,
3015,
3025,
72360,
72600
],
[
"(native) blink::HeapVectorBacking<cppgc::internal::BasicMember<blink::NavigationHistoryEntry,",
0,
48,
1,
1,
192,
240
],
[
"(native) blink::HeapVectorBacking<cppgc::internal::BasicMember<blink::ContextLifecycleObserver,",
0,
48,
8,
8,
1336,
1384
]
],
"class_diff_bottom": [
[
"(closure) updateStageAccessHeader",
0,
0,
1,
1,
28,
28
],
[
"(closure) tanh",
0,
0,
2,
2,
56,
56
],
[
"(closure) HTMLParagraphElement",
0,
0,
2,
2,
64,
64
],
[
"(closure) getAriaInvalid",
0,
0,
2,
2,
64,
64
],
[
"(closure) alphanumericCaseSensitive",
0,
0,
1,
1,
28,
28
],
[
"(closure) oV",
0,
0,
2,
2,
64,
64
],
[
"(object shape) system",
0,
-20,
16321,
16321,
815940,
815920
],
[
"(native) blink::NodeRareData::DataFieldWrapper<int>",
-2,
-48,
20,
18,
480,
432
],
[
"(native) blink::HeapVectorBacking<std::pair<cppgc::internal::BasicMember<const",
0,
-120,
1,
1,
872,
752
],
[
"(native) blink::HeapHashTableBacking<blink::HashTable<cppgc::internal::BasicMember<blink::ResizeObserver,",
0,
-128,
2,
2,
336,
208
]
],
"new_objects": {
"count": 173067,
"self_bytes": 6271836
},
"new_by_class": [
[
"(native) blink::MediaQueryFeatureExpNode",
23153,
1852240
],
[
"(native) blink::MediaQuery",
23159,
741088
],
[
"(native) blink::HeapVectorBacking<cppgc::internal::BasicMember<const",
23192,
556512
],
[
"(native) blink::MediaQuerySet",
23155,
555720
],
[
"(code)",
3077,
530660
],
[
"Object",
10841,
295704
],
[
"(string)",
24332,
195224
],
[
"oW",
1272,
127200
],
[
"(closure) (anonymous)",
3892,
110868
],
[
"(object shape) system",
1335,
76068
],
[
"(native) blink::HeapHashTableBacking<blink::HashTable<blink::ShapeCacheKey,",
3,
74904
],
[
"(native) system",
1822,
74008
],
[
"system",
2282,
72660
],
[
"(array) (object properties)",
44,
40672
],
[
"(native) blink::ComputedStyleBase::StyleSurroundData",
124,
38688
],
[
"(array) (object elements)",
1586,
34484
],
[
"(native) blink::HeapHashTableBacking<blink::HashTable<cppgc::internal::BasicMember<const",
6,
33312
],
[
"Array",
1927,
30832
],
[
"(native) blink::ComputedStyleBase::StyleMiscInherited1Data",
128,
26624
],
[
"(native) DOMRectReadOnly",
456,
25536
],
[
"(native) blink::HashTrieNode<blink::CSSVariableData>",
88,
23936
],
[
"(native) blink::ComputedStyle",
312,
22464
],
[
"(native) blink::ComputedStyleBase::StyleBoxData",
124,
21824
],
[
"(native) blink::HeapHashTableBacking<blink::HashTable<blink::FontDescription,",
1,
20488
],
[
"(native) blink::NetworkResourcesData::ResourceData",
70,
20160
],
[
"(native) blink::HeapHashTableBacking<blink::HashTable<blink::AtomicString,",
6,
19120
],
[
"(native) blink::UniqueElementData",
163,
18256
],
[
"(native) blink::PhysicalBoxFragment",
202,
17960
],
[
"(native) blink::ComputedStyleBase::StyleInheritedData",
124,
16864
],
[
"(native) blink::HeapVectorBacking<blink::PaintChunk>",
1,
16392
]
],
"retainers": {
"(native) blink::MediaQueryFeatureExpNode": [
[
"(native) blink::ConditionalExpNodeNested.[1] <- (native) blink::MediaQuery.[1] <- (native) blink::HeapVectorBacking<cppgc::internal::BasicMember<const.[1] <- (native) blink::MediaQuerySet.[1] <- (native) MediaQueryList.[4] <- (native) blink::HeapVectorBacking<std::pair<cppgc::internal::BasicMember<const.[3]",
1,
80
],
[
"(native) blink::MediaQuery.[1] <- (native) blink::HeapVectorBacking<cppgc::internal::BasicMember<const.[1] <- (native) blink::MediaQuerySet.[1] <- (native) blink::HeapHashTableBacking<blink::HashTable<cppgc::internal::BasicMember<const.[23756] <- (native) StyleEngine.[12] <- (native) HTMLDocument.[24]",
1,
80
],
[
"(native) blink::MediaQuery.[1] <- (native) blink::HeapVectorBacking<cppgc::internal::BasicMember<const.[1] <- (native) blink::MediaQuerySet.[1] <- (native) blink::HeapHashTableBacking<blink::HashTable<cppgc::internal::BasicMember<const.[28422] <- (native) StyleEngine.[12] <- (native) HTMLDocument.[24]",
1,
80
],
[
"(native) blink::MediaQuery.[1] <- (native) blink::HeapVectorBacking<cppgc::internal::BasicMember<const.[1] <- (native) blink::MediaQuerySet.[1] <- (native) blink::HeapHashTableBacking<blink::HashTable<cppgc::internal::BasicMember<const.[17109] <- (native) StyleEngine.[12] <- (native) HTMLDocument.[24]",
1,
80
],
[
"(native) blink::MediaQuery.[1] <- (native) blink::HeapVectorBacking<cppgc::internal::BasicMember<const.[1] <- (native) blink::MediaQuerySet.[1] <- (native) blink::HeapHashTableBacking<blink::HashTable<cppgc::internal::BasicMember<const.[43171] <- (native) StyleEngine.[12] <- (native) HTMLDocument.[24]",
1,
80
]
],
"(native) blink::MediaQuery": [
[
"(native) blink::HeapVectorBacking<cppgc::internal::BasicMember<const.[1] <- (native) blink::MediaQuerySet.[1] <- (native) blink::HeapHashTableBacking<blink::HashTable<cppgc::internal::BasicMember<const.[23756] <- (native) StyleEngine.[12] <- (native) HTMLDocument.[24] <- InjectedScript.document",
1,
32
],
[
"(native) blink::HeapVectorBacking<cppgc::internal::BasicMember<const.[1] <- (native) blink::MediaQuerySet.[1] <- (native) blink::HeapHashTableBacking<blink::HashTable<cppgc::internal::BasicMember<const.[28422] <- (native) StyleEngine.[12] <- (native) HTMLDocument.[24] <- InjectedScript.document",
1,
32
],
[
"(native) blink::HeapVectorBacking<cppgc::internal::BasicMember<const.[1] <- (native) blink::MediaQuerySet.[1] <- (native) blink::HeapHashTableBacking<blink::HashTable<cppgc::internal::BasicMember<const.[17109] <- (native) StyleEngine.[12] <- (native) HTMLDocument.[24] <- InjectedScript.document",
1,
32
],
[
"(native) blink::HeapVectorBacking<cppgc::internal::BasicMember<const.[1] <- (native) blink::MediaQuerySet.[1] <- (native) blink::HeapHashTableBacking<blink::HashTable<cppgc::internal::BasicMember<const.[43171] <- (native) StyleEngine.[12] <- (native) HTMLDocument.[24] <- InjectedScript.document",
1,
32
],
[
"(native) blink::HeapVectorBacking<cppgc::internal::BasicMember<const.[1] <- (native) blink::MediaQuerySet.[1] <- (native) blink::HeapHashTableBacking<blink::HashTable<cppgc::internal::BasicMember<const.[14406] <- (native) StyleEngine.[12] <- (native) HTMLDocument.[24] <- InjectedScript.document",
1,
32
]
],
"(native) blink::HeapVectorBacking<cppgc::internal::BasicMember<const": [
[
"(native) blink::CSSAnimationData.[3] <- (native) blink::ComputedStyleBase::StyleMisc7Data.[1] <- (native) blink::ComputedStyleBase::StyleMiscData.[10] <- (native) blink::ComputedStyle.[2] <- (native) <div.[6] <- (native) <input.[19]",
3,
72
],
[
"(native) blink::CSSAnimationData.[5] <- (native) blink::ComputedStyleBase::StyleMisc7Data.[1] <- (native) blink::ComputedStyleBase::StyleMiscData.[10] <- (native) blink::ComputedStyle.[2] <- (native) <div.[6] <- (native) <input.[19]",
3,
72
],
[
"(native) blink::MeasureCache.[1] <- (native) blink::LayoutTableCell.[3] <- (native) blink::LayoutFlexibleBox.[7] <- (native) blink::LayoutFlexibleBox.[8] <- (native) blink::PaintLayer.[1] <- (native) blink::PaintLayerScrollableArea.[5]",
2,
48
],
[
"(native) blink::CSSAnimationData.[3] <- (native) blink::ComputedStyleBase::StyleMisc7Data.[1] <- (native) blink::ComputedStyleBase::StyleMiscData.[10] <- (native) blink::ComputedStyle.[2] <- (native) blink::LayoutText.[2] <- (native) Text.[4]",
2,
48
],
[
"(native) blink::CSSAnimationData.[5] <- (native) blink::ComputedStyleBase::StyleMisc7Data.[1] <- (native) blink::ComputedStyleBase::StyleMiscData.[10] <- (native) blink::ComputedStyle.[2] <- (native) blink::LayoutText.[2] <- (native) Text.[4]",
2,
48
]
],
"(native) blink::MediaQuerySet": [
[
"(native) blink::HeapHashTableBacking<blink::HashTable<cppgc::internal::BasicMember<const.[31856] <- (native) StyleEngine.[12] <- (native) HTMLDocument.[24] <- InjectedScript.document <- (synthetic).2262 / DevTools console <- (synthetic).[10]",
1,
24
],
[
"(native) blink::HeapHashTableBacking<blink::HashTable<cppgc::internal::BasicMember<const.[27581] <- (native) StyleEngine.[12] <- (native) HTMLDocument.[24] <- InjectedScript.document <- (synthetic).2262 / DevTools console <- (synthetic).[10]",
1,
24
],
[
"(native) blink::HeapHashTableBacking<blink::HashTable<cppgc::internal::BasicMember<const.[7177] <- (native) StyleEngine.[12] <- (native) HTMLDocument.[24] <- InjectedScript.document <- (synthetic).2262 / DevTools console <- (synthetic).[10]",
1,
24
],
[
"(native) blink::HeapHashTableBacking<blink::HashTable<cppgc::internal::BasicMember<const.[12211] <- (native) StyleEngine.[12] <- (native) HTMLDocument.[24] <- InjectedScript.document <- (synthetic).2262 / DevTools console <- (synthetic).[10]",
1,
24
],
[
"(native) blink::HeapHashTableBacking<blink::HashTable<cppgc::internal::BasicMember<const.[22806] <- (native) StyleEngine.[12] <- (native) HTMLDocument.[24] <- InjectedScript.document <- (synthetic).2262 / DevTools console <- (synthetic).[10]",
1,
24
]
],
"(code)": [
[
"(code).instruction_stream <- (closure) (anonymous).code <- Object.render <- oW.elementType <- oW.return <- oW.return",
2,
39136
],
[
"(code).instruction_stream <- (closure) (anonymous).code <- Object.type <- system.nY <- (closure) (anonymous).context <- oW.elementType",
1,
34272
],
[
"(code).[0] <- (code).deoptimization_data <- (closure) (anonymous).code <- Object.render <- oW.elementType <- oW.return",
3,
12392
],
[
"(code).instruction_stream <- (closure) (anonymous).code <- system.e <- (closure) (anonymous).context <- Object.render <- oW.elementType",
1,
11232
],
[
"(code).[0] <- (code).deoptimization_data <- (closure) (anonymous).code <- Object.type <- system.nY <- (closure) (anonymous).context",
1,
9396
]
],
"Object": [
[
"Object.next <- Object.next <- Object.next <- Object.next <- Object.next <- Object.next",
1857,
58272
],
[
"Object.memoizedState <- Object.next <- Object.next <- Object.next <- Object.next <- Object.next",
206,
3296
],
[
"Object.next <- Object.next <- Object.next <- Object.next <- Object.next <- oW.memoizedState",
76,
2432
],
[
"Object.lastEffect <- oW.updateQueue <- oW.alternate <- oW.child <- oW.return <- (native) <div.__reactFiber$wimqul213a",
32,
1024
],
[
"Object.next <- Object.next <- Object.next <- Object.next <- Object.lastEffect <- oW.updateQueue",
31,
992
]
],
"(string)": [
[
"(string).first <- Object.styles <- Object.serialized <- oW.pendingProps <- oW.child <- oW.return",
116,
74876
],
[
"(string).first <- Object.styles <- Object.serialized <- oW.pendingProps <- oW.alternate <- oW.child",
81,
36680
],
[
"(string).first <- Object.styles <- Object.serialized <- oW.pendingProps <- oW.child <- oW.child",
29,
4624
],
[
"(string).first <- Object.className <- oW.pendingProps <- oW.alternate <- oW.return <- (native) <div.__reactFiber$wimqul213a",
27,
2028
],
[
"(string).first <- Object.className <- oW.pendingProps <- oW.return <- oW.return <- oW.return",
18,
1568
]
],
"oW": [
[
"oW.return <- oW.return <- (native) <td.__reactFiber$wimqul213a <- (native) blink::LayoutTableCell.[8] <- (native) blink::PaintLayer.[1] <- (native) blink::PaintLayerScrollableArea.[5]",
5,
500
],
[
"oW.child <- oW.return <- (native) <td.__reactFiber$wimqul213a <- (native) blink::LayoutTableCell.[8] <- (native) blink::PaintLayer.[1] <- (native) blink::PaintLayerScrollableArea.[5]",
5,
500
],
[
"oW.child <- oW.return <- oW.return <- oW.return <- (native) <button.__reactFiber$wimqul213a <- (native) SVGSVGElement.[17]",
5,
500
],
[
"oW.alternate <- oW.return <- (native) <div.__reactFiber$wimqul213a <- (native) blink::LayoutFlexibleBox.[7] <- (native) blink::PaintLayer.[1] <- (native) blink::PaintLayerScrollableArea.[5]",
5,
500
],
[
"oW.alternate <- oW.return <- (native) <div.__reactFiber$wimqul213a <- (native) <div.[11] <- (native) blink::LayoutFlexibleBox.[7] <- (native) blink::PaintLayer.[1]",
5,
500
]
],
"(closure) (anonymous)": [
[
"Object.create <- Object.next <- Object.next <- Object.next <- Object.next <- Object.next",
202,
5656
],
[
"Array.[0] <- Object.memoizedState <- Object.next <- Object.next <- Object.next <- Object.next",
81,
2308
],
[
"Object.create <- Object.lastEffect <- oW.updateQueue <- oW.alternate <- oW.child <- oW.return",
59,
1888
],
[
"Object.create <- Object.lastEffect <- oW.updateQueue <- oW.child <- oW.return <- (native) <div.__reactFiber$wimqul213a",
48,
1536
],
[
"system.e <- (closure) (anonymous).context <- Object.create <- Object.next <- Object.next <- Object.next",
38,
1064
]
],
"(object shape) system": [
[
"(object shape) system.back_pointer <- (object shape) system.back_pointer <- (object shape) system.back_pointer <- (object shape) system.back_pointer <- (object shape) system.back_pointer <- (object shape) system.back_pointer",
153,
6120
],
[
"(object shape) system.transitions <- (object shape) system.back_pointer <- (object shape) system.back_pointer <- (object shape) system.back_pointer <- (object shape) system.back_pointer <- (object shape) system.back_pointer",
52,
3232
],
[
"(object shape) system.transitions <- (closure) Object.initial_map <- (native) system.object_function <- (synthetic).2236 / V8PerContextData::context_ <- (synthetic).[10] <- (synthetic).[1]",
1,
2436
],
[
"(object shape) system.back_pointer <- (object shape) system.back_pointer <- (object shape) system.back_pointer <- (object shape) system.back_pointer <- (object shape) system.back_pointer <- Object.map",
48,
1920
],
[
"(object shape) system.transitions <- (object shape) system.back_pointer <- Object.map <- Object.data <- (synthetic).102 / DevTools console <- (synthetic).[10]",
1,
1732
]
],
"(native) blink::HeapHashTableBacking<blink::HashTable<blink::ShapeCacheKey,": [
[
"(native) blink::NGShapeCache.[1] <- (native) blink::SimpleFontData.[2] <- (native) blink::HeapHashTableBacking<blink::HashTable<cppgc::internal::BasicMember<const.[7] <- (native) blink::FontGlobalContext.[4] <- (synthetic).T *blink::ThreadSpecific<cppgc::internal::BasicPersistent<blink::FontGlobalContext, cppgc::internal::StrongPersistentPolicy>>::operator cppgc::internal::BasicPersistent<blink::FontGlobalContext, cppgc::internal::StrongPersistentPolicy> *() [T = cppgc::internal::BasicPersistent<blink::FontGlobalContext, cppgc::internal::StrongPersistentPolicy>]@../../third_party/blink/renderer/platform/wtf/thread_specific.h:137 <- (synthetic).[29]",
1,
36872
],
[
"(native) blink::NGShapeCache.[1] <- (native) blink::SimpleFontData.[2] <- (native) blink::HeapHashTableBacking<blink::HashTable<cppgc::internal::BasicMember<const.[8] <- (native) blink::FontGlobalContext.[4] <- (synthetic).T *blink::ThreadSpecific<cppgc::internal::BasicPersistent<blink::FontGlobalContext, cppgc::internal::StrongPersistentPolicy>>::operator cppgc::internal::BasicPersistent<blink::FontGlobalContext, cppgc::internal::StrongPersistentPolicy> *() [T = cppgc::internal::BasicPersistent<blink::FontGlobalContext, cppgc::internal::StrongPersistentPolicy>]@../../third_party/blink/renderer/platform/wtf/thread_specific.h:137 <- (synthetic).[29]",
1,
36872
],
[
"(native) blink::NGShapeCache.[1] <- (native) blink::SimpleFontData.[2] <- (native) blink::HeapHashTableBacking<blink::HashTable<cppgc::internal::BasicMember<const.[2] <- (native) blink::FontGlobalContext.[4] <- (synthetic).T *blink::ThreadSpecific<cppgc::internal::BasicPersistent<blink::FontGlobalContext, cppgc::internal::StrongPersistentPolicy>>::operator cppgc::internal::BasicPersistent<blink::FontGlobalContext, cppgc::internal::StrongPersistentPolicy> *() [T = cppgc::internal::BasicPersistent<blink::FontGlobalContext, cppgc::internal::StrongPersistentPolicy>]@../../third_party/blink/renderer/platform/wtf/thread_specific.h:137 <- (synthetic).[29]",
1,
1160
]
],
"(native) system": [
[
"(object shape) system.dependent_code <- Object.map <- system.E <- (closure) (anonymous).context <- system.to <- system.previous",
1,
2916
],
[
"(object shape) system.dependent_code <- Object.map <- oW.dependencies <- oW.return <- (native) <div.__reactFiber$wimqul213a <- (native) HTMLDocument.[11]",
1,
2916
],
[
"(object shape) system.dependent_code <- (object shape) system.back_pointer <- (object shape) system.back_pointer <- (object shape) system.back_pointer <- (object shape) system.back_pointer <- (object shape) system.back_pointer",
62,
2376
],
[
"Object.properties <- system.e <- (closure) debug.context <- Object.debug <- system.r <- (closure) (anonymous).context",
3,
1356
],
[
"(object shape) system.dependent_code <- (native) system.js_array_packed_smi_elements_map <- (synthetic).2236 / V8PerContextData::context_ <- (synthetic).[10] <- (synthetic).[1]",
1,
864
]
]
},
"detached_in_b": [
[
"(native) <textarea",
1
],
[
"(native) <div",
1
],
[
"(native) <tr>",
1
],
[
"(native) <td>",
1
]
]
}