test: add perf tests for workflow loading time#10823
test: add perf tests for workflow loading time#10823LittleSound wants to merge 1 commit intomainfrom
Conversation
Add two @Perf tests measuring workflow load + settling time: - large workflow (245 nodes): measures DOM creation and layout cost - media-heavy workflow (585 nodes + 128 media): measures combined node creation and media preview loading pressure The media-heavy test intercepts /api/view requests with a small test image to ensure deterministic media rendering cost.
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (2)
📝 WalkthroughWalkthroughTwo new performance test cases are added to measure workflow loading metrics, including a large-graph workflow test and a media-heavy workflow test with API response mocking. Both tests capture measurements like duration, style recalculations, layout operations, and memory changes across different settling periods. Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
🎨 Storybook: ✅ Built — View Storybook |
🎭 Playwright: ✅ 909 passed, 0 failed · 4 flaky📊 Browser Reports
|
📦 Bundle: 5.11 MB gzip 🟢 -306 BDetailsSummary
Category Glance App Entry Points — 22.3 kB (baseline 22.3 kB) • ⚪ 0 BMain entry bundles and manifests
Status: 1 added / 1 removed Graph Workspace — 1.2 MB (baseline 1.2 MB) • ⚪ 0 BGraph editor runtime, canvas, workflow orchestration
Status: 1 added / 1 removed Views & Navigation — 76.6 kB (baseline 76.6 kB) • ⚪ 0 BTop-level views, pages, and routed surfaces
Status: 9 added / 9 removed / 2 unchanged Panels & Settings — 484 kB (baseline 484 kB) • ⚪ 0 BConfiguration panels, inspectors, and settings screens
Status: 10 added / 10 removed / 12 unchanged User & Accounts — 17.1 kB (baseline 17.1 kB) • ⚪ 0 BAuthentication, profile, and account management bundles
Status: 5 added / 5 removed / 2 unchanged Editors & Dialogs — 109 kB (baseline 109 kB) • ⚪ 0 BModals, dialogs, drawers, and in-app editors
Status: 2 added / 2 removed UI Components — 60.3 kB (baseline 60.3 kB) • ⚪ 0 BReusable component library chunks
Status: 5 added / 5 removed / 8 unchanged Data & Services — 2.97 MB (baseline 2.97 MB) • ⚪ 0 BStores, services, APIs, and repositories
Status: 13 added / 13 removed / 4 unchanged Utilities & Hooks — 338 kB (baseline 338 kB) • ⚪ 0 BHelpers, composables, and utility bundles
Status: 13 added / 13 removed / 13 unchanged Vendor & Third-Party — 9.8 MB (baseline 9.8 MB) • ⚪ 0 BExternal libraries and shared vendor chunks Status: 16 unchanged Other — 8.44 MB (baseline 8.44 MB) • ⚪ 0 BBundles that do not match a named category
Status: 55 added / 55 removed / 79 unchanged ⚡ Performance Report
All metrics
Historical variance (last 15 runs)
Trend (last 15 commits on main)
Raw data{
"timestamp": "2026-04-02T09:05:32.560Z",
"gitSha": "9e6ed7d91010437f0bade1eb8e495c5689afe133",
"branch": "perf/test-workflow-loading",
"measurements": [
{
"name": "canvas-idle",
"durationMs": 2027.9169999999738,
"styleRecalcs": 11,
"styleRecalcDurationMs": 10.125999999999998,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 393.895,
"heapDeltaBytes": 20383388,
"heapUsedBytes": 63160344,
"domNodes": 23,
"jsHeapTotalBytes": 23068672,
"scriptDurationMs": 28.101999999999997,
"eventListeners": 6,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.670000000000012,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "canvas-idle",
"durationMs": 1999.0460000000212,
"styleRecalcs": 11,
"styleRecalcDurationMs": 9.296999999999999,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 360.537,
"heapDeltaBytes": 20139536,
"heapUsedBytes": 64587908,
"domNodes": 22,
"jsHeapTotalBytes": 22806528,
"scriptDurationMs": 19.233999999999998,
"eventListeners": 6,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "canvas-idle",
"durationMs": 2008.2200000000512,
"styleRecalcs": 11,
"styleRecalcDurationMs": 10.183,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 398.922,
"heapDeltaBytes": 20337676,
"heapUsedBytes": 63161268,
"domNodes": 21,
"jsHeapTotalBytes": 23068672,
"scriptDurationMs": 28.383,
"eventListeners": 6,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "canvas-mouse-sweep",
"durationMs": 1813.4170000000154,
"styleRecalcs": 76,
"styleRecalcDurationMs": 35.615,
"layouts": 12,
"layoutDurationMs": 3.127,
"taskDurationMs": 765.2900000000001,
"heapDeltaBytes": 16634464,
"heapUsedBytes": 59406100,
"domNodes": 60,
"jsHeapTotalBytes": 23855104,
"scriptDurationMs": 122.39099999999999,
"eventListeners": 4,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66666666666665,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "canvas-mouse-sweep",
"durationMs": 1780.038999999988,
"styleRecalcs": 72,
"styleRecalcDurationMs": 31.948000000000004,
"layouts": 12,
"layoutDurationMs": 3.432,
"taskDurationMs": 756.0819999999999,
"heapDeltaBytes": 16737868,
"heapUsedBytes": 59452028,
"domNodes": 54,
"jsHeapTotalBytes": 23855104,
"scriptDurationMs": 124.84,
"eventListeners": 4,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333332,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "canvas-mouse-sweep",
"durationMs": 1775.1739999999927,
"styleRecalcs": 73,
"styleRecalcDurationMs": 36.466,
"layouts": 12,
"layoutDurationMs": 3.613,
"taskDurationMs": 775.996,
"heapDeltaBytes": 16012188,
"heapUsedBytes": 58794304,
"domNodes": 56,
"jsHeapTotalBytes": 23592960,
"scriptDurationMs": 127.83200000000001,
"eventListeners": 4,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333332,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "canvas-zoom-sweep",
"durationMs": 1761.9710000000168,
"styleRecalcs": 31,
"styleRecalcDurationMs": 24.970000000000002,
"layouts": 6,
"layoutDurationMs": 0.745,
"taskDurationMs": 355.59700000000004,
"heapDeltaBytes": 24680508,
"heapUsedBytes": 67560252,
"domNodes": 77,
"jsHeapTotalBytes": 21233664,
"scriptDurationMs": 28.737000000000002,
"eventListeners": 19,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.699999999999818
},
{
"name": "canvas-zoom-sweep",
"durationMs": 1749.1890000000012,
"styleRecalcs": 30,
"styleRecalcDurationMs": 18.421,
"layouts": 6,
"layoutDurationMs": 0.7350000000000002,
"taskDurationMs": 335.347,
"heapDeltaBytes": 15813700,
"heapUsedBytes": 68869452,
"domNodes": 79,
"jsHeapTotalBytes": 23592960,
"scriptDurationMs": 30.81,
"eventListeners": 19,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66666666666665,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "canvas-zoom-sweep",
"durationMs": 1748.032999999964,
"styleRecalcs": 31,
"styleRecalcDurationMs": 22.993999999999996,
"layouts": 6,
"layoutDurationMs": 0.8989999999999998,
"taskDurationMs": 336.588,
"heapDeltaBytes": 25013024,
"heapUsedBytes": 67477456,
"domNodes": 80,
"jsHeapTotalBytes": 20709376,
"scriptDurationMs": 29.748000000000005,
"eventListeners": 19,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000273
},
{
"name": "dom-widget-clipping",
"durationMs": 587.3210000000029,
"styleRecalcs": 13,
"styleRecalcDurationMs": 11.111999999999998,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 359.43199999999996,
"heapDeltaBytes": 6895388,
"heapUsedBytes": 49497968,
"domNodes": 22,
"jsHeapTotalBytes": 13107200,
"scriptDurationMs": 63.57399999999999,
"eventListeners": 2,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333332,
"p95FrameDurationMs": 16.799999999999727
},
{
"name": "dom-widget-clipping",
"durationMs": 562.7719999999954,
"styleRecalcs": 12,
"styleRecalcDurationMs": 7.725999999999998,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 342.503,
"heapDeltaBytes": 6589616,
"heapUsedBytes": 49365428,
"domNodes": 20,
"jsHeapTotalBytes": 13893632,
"scriptDurationMs": 65.64399999999999,
"eventListeners": 2,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.799999999999727
},
{
"name": "dom-widget-clipping",
"durationMs": 566.573999999946,
"styleRecalcs": 12,
"styleRecalcDurationMs": 7.701,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 355.93600000000004,
"heapDeltaBytes": -2155816,
"heapUsedBytes": 50739952,
"domNodes": 19,
"jsHeapTotalBytes": 15990784,
"scriptDurationMs": 60.879000000000005,
"eventListeners": 2,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333332,
"p95FrameDurationMs": 16.700000000000273
},
{
"name": "large-graph-idle",
"durationMs": 2053.8500000000113,
"styleRecalcs": 11,
"styleRecalcDurationMs": 10.420999999999998,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 574.307,
"heapDeltaBytes": 16000940,
"heapUsedBytes": 67830244,
"domNodes": -255,
"jsHeapTotalBytes": 15192064,
"scriptDurationMs": 97.074,
"eventListeners": -127,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "large-graph-idle",
"durationMs": 2038.174999999967,
"styleRecalcs": 11,
"styleRecalcDurationMs": 10.58,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 578.4,
"heapDeltaBytes": 5181400,
"heapUsedBytes": 55926852,
"domNodes": -257,
"jsHeapTotalBytes": 16183296,
"scriptDurationMs": 95.112,
"eventListeners": -125,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333335,
"p95FrameDurationMs": 16.699999999999818
},
{
"name": "large-graph-idle",
"durationMs": 2015.5240000000276,
"styleRecalcs": 11,
"styleRecalcDurationMs": 8.973000000000003,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 578.354,
"heapDeltaBytes": 3889172,
"heapUsedBytes": 54388988,
"domNodes": -256,
"jsHeapTotalBytes": 16183296,
"scriptDurationMs": 93.696,
"eventListeners": -125,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333335,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "large-graph-pan",
"durationMs": 2146.097999999995,
"styleRecalcs": 71,
"styleRecalcDurationMs": 17.057999999999996,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 1126.28,
"heapDeltaBytes": 17067016,
"heapUsedBytes": 68534324,
"domNodes": -256,
"jsHeapTotalBytes": 17436672,
"scriptDurationMs": 385.56100000000004,
"eventListeners": -125,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333335,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "large-graph-pan",
"durationMs": 2115.893000000028,
"styleRecalcs": 68,
"styleRecalcDurationMs": 15.306999999999997,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 1066.8690000000001,
"heapDeltaBytes": 23176856,
"heapUsedBytes": 77850876,
"domNodes": -261,
"jsHeapTotalBytes": 20086784,
"scriptDurationMs": 371.716,
"eventListeners": -125,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "large-graph-pan",
"durationMs": 2129.9569999999903,
"styleRecalcs": 68,
"styleRecalcDurationMs": 14.951999999999996,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 1201.746,
"heapDeltaBytes": 18003312,
"heapUsedBytes": 71381296,
"domNodes": -262,
"jsHeapTotalBytes": 19795968,
"scriptDurationMs": 459.244,
"eventListeners": -125,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "large-graph-zoom",
"durationMs": 3143.648000000013,
"styleRecalcs": 66,
"styleRecalcDurationMs": 17.255,
"layouts": 60,
"layoutDurationMs": 7.987999999999999,
"taskDurationMs": 1313.4920000000002,
"heapDeltaBytes": 7157152,
"heapUsedBytes": 61582896,
"domNodes": -262,
"jsHeapTotalBytes": 17756160,
"scriptDurationMs": 455.455,
"eventListeners": -123,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "large-graph-zoom",
"durationMs": 3162.957000000006,
"styleRecalcs": 66,
"styleRecalcDurationMs": 16.773,
"layouts": 60,
"layoutDurationMs": 7.733,
"taskDurationMs": 1291.2160000000001,
"heapDeltaBytes": 6929596,
"heapUsedBytes": 61592480,
"domNodes": -263,
"jsHeapTotalBytes": 17231872,
"scriptDurationMs": 458.756,
"eventListeners": -123,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333332,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "large-graph-zoom",
"durationMs": 3185.526999999979,
"styleRecalcs": 66,
"styleRecalcDurationMs": 16.684,
"layouts": 60,
"layoutDurationMs": 7.937999999999999,
"taskDurationMs": 1345.2569999999998,
"heapDeltaBytes": 7047976,
"heapUsedBytes": 61855848,
"domNodes": -265,
"jsHeapTotalBytes": 17231872,
"scriptDurationMs": 472.348,
"eventListeners": -123,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.699999999999818
},
{
"name": "large-workflow-load",
"durationMs": 2317.5840000000107,
"styleRecalcs": 119,
"styleRecalcDurationMs": 22.33,
"layouts": 4,
"layoutDurationMs": 2.1159999999999997,
"taskDurationMs": 819.2499999999999,
"heapDeltaBytes": 5262528,
"heapUsedBytes": 52474076,
"domNodes": 1352,
"jsHeapTotalBytes": 40329216,
"scriptDurationMs": 111.99199999999999,
"eventListeners": 1108,
"totalBlockingTimeMs": 110,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "large-workflow-load",
"durationMs": 2352.2070000000213,
"styleRecalcs": 119,
"styleRecalcDurationMs": 23.564999999999998,
"layouts": 4,
"layoutDurationMs": 2.112,
"taskDurationMs": 863.075,
"heapDeltaBytes": 21405884,
"heapUsedBytes": 69910408,
"domNodes": 1353,
"jsHeapTotalBytes": 39141376,
"scriptDurationMs": 122.247,
"eventListeners": 1106,
"totalBlockingTimeMs": 119,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "large-workflow-load",
"durationMs": 2363.6390000000347,
"styleRecalcs": 120,
"styleRecalcDurationMs": 27.110000000000003,
"layouts": 4,
"layoutDurationMs": 2.169,
"taskDurationMs": 887.82,
"heapDeltaBytes": 6084532,
"heapUsedBytes": 53393836,
"domNodes": 1351,
"jsHeapTotalBytes": 39911424,
"scriptDurationMs": 130.584,
"eventListeners": 1108,
"totalBlockingTimeMs": 124,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "media-heavy-workflow-load",
"durationMs": 5112.351999999987,
"styleRecalcs": 328,
"styleRecalcDurationMs": 35.706999999999994,
"layouts": 5,
"layoutDurationMs": 30.502000000000002,
"taskDurationMs": 2826.528,
"heapDeltaBytes": 45331584,
"heapUsedBytes": 92515792,
"domNodes": 7229,
"jsHeapTotalBytes": 81022976,
"scriptDurationMs": 337.76599999999996,
"eventListeners": 7680,
"totalBlockingTimeMs": 593,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "media-heavy-workflow-load",
"durationMs": 5119.962999999984,
"styleRecalcs": 327,
"styleRecalcDurationMs": 36.650999999999996,
"layouts": 5,
"layoutDurationMs": 26.493,
"taskDurationMs": 2933.247,
"heapDeltaBytes": 43453396,
"heapUsedBytes": 90698376,
"domNodes": 7227,
"jsHeapTotalBytes": 81809408,
"scriptDurationMs": 351.887,
"eventListeners": 7679,
"totalBlockingTimeMs": 607,
"frameDurationMs": 16.670000000000012,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "media-heavy-workflow-load",
"durationMs": 5141.023999999902,
"styleRecalcs": 327,
"styleRecalcDurationMs": 37.123,
"layouts": 5,
"layoutDurationMs": 28.337,
"taskDurationMs": 2968.163,
"heapDeltaBytes": 43157276,
"heapUsedBytes": 90387000,
"domNodes": 7226,
"jsHeapTotalBytes": 81022976,
"scriptDurationMs": 356.529,
"eventListeners": 7680,
"totalBlockingTimeMs": 611,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "minimap-idle",
"durationMs": 2073.9260000000286,
"styleRecalcs": 10,
"styleRecalcDurationMs": 11.585999999999999,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 580.0600000000001,
"heapDeltaBytes": 5133236,
"heapUsedBytes": 57745312,
"domNodes": -259,
"jsHeapTotalBytes": 16183296,
"scriptDurationMs": 100.003,
"eventListeners": -125,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.670000000000012,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "minimap-idle",
"durationMs": 2037.8959999999893,
"styleRecalcs": 10,
"styleRecalcDurationMs": 9.151,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 588.077,
"heapDeltaBytes": 2082544,
"heapUsedBytes": 54900960,
"domNodes": -258,
"jsHeapTotalBytes": 15396864,
"scriptDurationMs": 97.82000000000001,
"eventListeners": -125,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "minimap-idle",
"durationMs": 2063.8020000000097,
"styleRecalcs": 9,
"styleRecalcDurationMs": 8.261999999999999,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 563.951,
"heapDeltaBytes": 16359608,
"heapUsedBytes": 69721932,
"domNodes": -256,
"jsHeapTotalBytes": 14929920,
"scriptDurationMs": 101.191,
"eventListeners": -127,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "subgraph-dom-widget-clipping",
"durationMs": 533.0529999999953,
"styleRecalcs": 46,
"styleRecalcDurationMs": 10.037,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 354.57300000000004,
"heapDeltaBytes": 6429020,
"heapUsedBytes": 49529600,
"domNodes": 18,
"jsHeapTotalBytes": 14155776,
"scriptDurationMs": 119.83099999999999,
"eventListeners": 8,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "subgraph-dom-widget-clipping",
"durationMs": 579.6639999999798,
"styleRecalcs": 48,
"styleRecalcDurationMs": 11.986,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 366.134,
"heapDeltaBytes": 8369908,
"heapUsedBytes": 57666796,
"domNodes": 22,
"jsHeapTotalBytes": 13369344,
"scriptDurationMs": 120.93500000000002,
"eventListeners": 8,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000273
},
{
"name": "subgraph-dom-widget-clipping",
"durationMs": 561.2370000000055,
"styleRecalcs": 49,
"styleRecalcDurationMs": 12.215,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 359.44100000000003,
"heapDeltaBytes": 6282128,
"heapUsedBytes": 49306984,
"domNodes": 23,
"jsHeapTotalBytes": 13631488,
"scriptDurationMs": 119.74499999999999,
"eventListeners": 8,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.663333333333338,
"p95FrameDurationMs": 16.800000000000182
},
{
"name": "subgraph-idle",
"durationMs": 2027.9439999999909,
"styleRecalcs": 11,
"styleRecalcDurationMs": 12.946000000000002,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 427.119,
"heapDeltaBytes": 19821752,
"heapUsedBytes": 64280824,
"domNodes": 22,
"jsHeapTotalBytes": 22806528,
"scriptDurationMs": 19.154999999999998,
"eventListeners": 6,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.66333333333332,
"p95FrameDurationMs": 16.699999999999818
},
{
"name": "subgraph-idle",
"durationMs": 1993.1980000000067,
"styleRecalcs": 11,
"styleRecalcDurationMs": 8.734,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 358.23,
"heapDeltaBytes": 20295464,
"heapUsedBytes": 63314820,
"domNodes": 22,
"jsHeapTotalBytes": 22806528,
"scriptDurationMs": 22.405999999999995,
"eventListeners": 6,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "subgraph-idle",
"durationMs": 1997.9929999999513,
"styleRecalcs": 11,
"styleRecalcDurationMs": 9.633999999999999,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 395.858,
"heapDeltaBytes": 19933216,
"heapUsedBytes": 63020152,
"domNodes": 21,
"jsHeapTotalBytes": 22806528,
"scriptDurationMs": 22.756,
"eventListeners": 6,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "subgraph-mouse-sweep",
"durationMs": 2016.7819999999779,
"styleRecalcs": 88,
"styleRecalcDurationMs": 46.507,
"layouts": 16,
"layoutDurationMs": 4.908,
"taskDurationMs": 961.5730000000001,
"heapDeltaBytes": 11107896,
"heapUsedBytes": 53041424,
"domNodes": 74,
"jsHeapTotalBytes": 22806528,
"scriptDurationMs": 96.28900000000002,
"eventListeners": 6,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "subgraph-mouse-sweep",
"durationMs": 1965.387000000021,
"styleRecalcs": 83,
"styleRecalcDurationMs": 43.779,
"layouts": 16,
"layoutDurationMs": 4.526,
"taskDurationMs": 927.067,
"heapDeltaBytes": 11957276,
"heapUsedBytes": 54982828,
"domNodes": 71,
"jsHeapTotalBytes": 23330816,
"scriptDurationMs": 94.87700000000001,
"eventListeners": 6,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.670000000000012,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "subgraph-mouse-sweep",
"durationMs": 1977.1610000000237,
"styleRecalcs": 84,
"styleRecalcDurationMs": 47.591,
"layouts": 16,
"layoutDurationMs": 5.053,
"taskDurationMs": 943.033,
"heapDeltaBytes": 12199328,
"heapUsedBytes": 55273952,
"domNodes": 73,
"jsHeapTotalBytes": 23592960,
"scriptDurationMs": 96.971,
"eventListeners": 6,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "viewport-pan-sweep",
"durationMs": 8198.96,
"styleRecalcs": 251,
"styleRecalcDurationMs": 46.17300000000001,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 3836.5989999999997,
"heapDeltaBytes": 26117648,
"heapUsedBytes": 76331632,
"domNodes": -256,
"jsHeapTotalBytes": 20844544,
"scriptDurationMs": 1222.968,
"eventListeners": -109,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.670000000000012,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "viewport-pan-sweep",
"durationMs": 8163.171000000034,
"styleRecalcs": 252,
"styleRecalcDurationMs": 44.553999999999995,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 3786.141,
"heapDeltaBytes": 20225080,
"heapUsedBytes": 70988164,
"domNodes": -257,
"jsHeapTotalBytes": 19271680,
"scriptDurationMs": 1235.371,
"eventListeners": -111,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "viewport-pan-sweep",
"durationMs": 8189.3250000000535,
"styleRecalcs": 252,
"styleRecalcDurationMs": 47.137,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 3939.0509999999995,
"heapDeltaBytes": 24817220,
"heapUsedBytes": 75835832,
"domNodes": -255,
"jsHeapTotalBytes": 19009536,
"scriptDurationMs": 1270.3549999999998,
"eventListeners": -107,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "vue-large-graph-idle",
"durationMs": 10684.594000000005,
"styleRecalcs": 0,
"styleRecalcDurationMs": 0,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 10670.275,
"heapDeltaBytes": -45115188,
"heapUsedBytes": 166064816,
"domNodes": -8360,
"jsHeapTotalBytes": 26304512,
"scriptDurationMs": 547.869,
"eventListeners": -16466,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "vue-large-graph-idle",
"durationMs": 10749.55,
"styleRecalcs": 0,
"styleRecalcDurationMs": 0,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 10737.469999999998,
"heapDeltaBytes": -28965304,
"heapUsedBytes": 159193932,
"domNodes": -8333,
"jsHeapTotalBytes": 17915904,
"scriptDurationMs": 537.757,
"eventListeners": -16468,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.670000000000073,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "vue-large-graph-idle",
"durationMs": 10589.215999999964,
"styleRecalcs": 0,
"styleRecalcDurationMs": 0,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 10576.654999999999,
"heapDeltaBytes": -31808856,
"heapUsedBytes": 163096184,
"domNodes": -8331,
"jsHeapTotalBytes": 23945216,
"scriptDurationMs": 556.301,
"eventListeners": -16468,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "vue-large-graph-pan",
"durationMs": 12699.635999999999,
"styleRecalcs": 67,
"styleRecalcDurationMs": 16.845,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 12677.84,
"heapDeltaBytes": -47071532,
"heapUsedBytes": 148520272,
"domNodes": -8331,
"jsHeapTotalBytes": -2793472,
"scriptDurationMs": 836.3099999999998,
"eventListeners": -16492,
"totalBlockingTimeMs": 37,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.80000000000291
},
{
"name": "vue-large-graph-pan",
"durationMs": 12427.53700000003,
"styleRecalcs": 64,
"styleRecalcDurationMs": 14.530999999999988,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 12408.055,
"heapDeltaBytes": -37557468,
"heapUsedBytes": 172797936,
"domNodes": -8332,
"jsHeapTotalBytes": 24383488,
"scriptDurationMs": 861.7470000000001,
"eventListeners": -16467,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.799999999999272
},
{
"name": "vue-large-graph-pan",
"durationMs": 12742.362999999954,
"styleRecalcs": 67,
"styleRecalcDurationMs": 16.269000000000005,
"layouts": 0,
"layoutDurationMs": 0,
"taskDurationMs": 12723.249000000002,
"heapDeltaBytes": -57505364,
"heapUsedBytes": 148779916,
"domNodes": -8335,
"jsHeapTotalBytes": -1220608,
"scriptDurationMs": 805.632,
"eventListeners": -16488,
"totalBlockingTimeMs": 43,
"frameDurationMs": 16.66333333333338,
"p95FrameDurationMs": 16.700000000000728
},
{
"name": "workflow-execution",
"durationMs": 444.71599999997125,
"styleRecalcs": 18,
"styleRecalcDurationMs": 21.709000000000003,
"layouts": 5,
"layoutDurationMs": 1.412,
"taskDurationMs": 119.953,
"heapDeltaBytes": 4722500,
"heapUsedBytes": 48431440,
"domNodes": 169,
"jsHeapTotalBytes": 524288,
"scriptDurationMs": 27.864000000000008,
"eventListeners": 71,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.663333333333338,
"p95FrameDurationMs": 16.799999999999727
},
{
"name": "workflow-execution",
"durationMs": 471.38699999993605,
"styleRecalcs": 16,
"styleRecalcDurationMs": 22.781000000000002,
"layouts": 5,
"layoutDurationMs": 1.4349999999999998,
"taskDurationMs": 129.102,
"heapDeltaBytes": 4515932,
"heapUsedBytes": 48815680,
"domNodes": 156,
"jsHeapTotalBytes": 524288,
"scriptDurationMs": 26.794999999999995,
"eventListeners": 71,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.700000000000273
},
{
"name": "workflow-execution",
"durationMs": 477.0960000000741,
"styleRecalcs": 16,
"styleRecalcDurationMs": 20.663,
"layouts": 5,
"layoutDurationMs": 1.4130000000000003,
"taskDurationMs": 127.90200000000002,
"heapDeltaBytes": 4503140,
"heapUsedBytes": 48520656,
"domNodes": 156,
"jsHeapTotalBytes": 0,
"scriptDurationMs": 29.057999999999996,
"eventListeners": 71,
"totalBlockingTimeMs": 0,
"frameDurationMs": 16.666666666666668,
"p95FrameDurationMs": 16.800000000000182
}
]
} |
Adds two
@perftests measuring workflow load + settling time to establish baselines for upcoming optimization work.What
Why
PR 1 of 2. Establishes CI baselines so the follow-up optimization PR can show proven improvement via
ci-perf-report.Test plan
pnpm exec playwright test --project=performance --grep "workflow load"┆Issue is synchronized with this Notion page by Unito