Skip to content

[backport core/1.43] fix: use hash lookup for missing asset detection (#11873)#11890

Open
jaeone94 wants to merge 1 commit intocore/1.43from
codex/backport-11873-core-1.43
Open

[backport core/1.43] fix: use hash lookup for missing asset detection (#11873)#11890
jaeone94 wants to merge 1 commit intocore/1.43from
codex/backport-11873-core-1.43

Conversation

@jaeone94
Copy link
Copy Markdown
Collaborator

@jaeone94 jaeone94 commented May 4, 2026

Manual backport of #11873 to core/1.43.

Cherry-picked squash merge commit 04918360ebcf69adffdf5d8ff6603c24c7a2809a.

Why

#11873 moves missing asset detection to use exact BLAKE3 hash lookups first when a workflow exposes a valid hash, then falls back to the legacy asset-list matching path for non-hash, invalid, or transiently unverifiable candidates.

For media inputs, the legacy fallback now reads from a separate public-inclusive input asset cache in assetService instead of reusing assetsStore.inputAssets. That keeps the UI/widget asset list user-only while allowing missing input detection to account for public cloud assets loaded by templates, avoiding false-positive missing media on initial workflow load.

Conflict resolution

Validation

  • pnpm test:unit -- run src/platform/assets/services/assetService.test.ts src/stores/assetsStore.test.ts ✅ (91/91 passing)
  • pnpm typecheck
  • pnpm exec oxfmt --check src/platform/assets/services/assetService.ts src/platform/assets/services/assetService.test.ts src/platform/missingMedia/missingMediaScan.ts src/platform/missingMedia/missingMediaScan.test.ts src/platform/missingModel/missingModelScan.ts src/platform/missingModel/missingModelScan.test.ts src/stores/assetsStore.ts src/stores/assetsStore.test.ts
  • git diff --check
  • Commit hook also ran oxfmt, oxlint, eslint, and pnpm typecheck on the changed files ✅
  • Push hook ran pnpm knip --cache

Original PR: #11873
Original commit: 04918360ebcf69adffdf5d8ff6603c24c7a2809a

┆Issue is synchronized with this Notion page by Unito

Use exact BLAKE3 hash lookups first for missing model/media detection,
and add a separate public-inclusive input asset cache so public input
assets are considered missing-detection candidates without changing the
user-only input assets shown in the UI.

- **What**:
- Added `assetService.checkAssetHash()` for `HEAD
/api/assets/hash/{hash}` status-only existence checks.
- Added strict BLAKE3 hash helpers so only `blake3:<64 hex>` media
values and raw 64-hex BLAKE3 model metadata are sent to the hash
endpoint.
- Updated missing media detection to group BLAKE3 candidates by hash,
resolve them through the hash endpoint, and fall back to the legacy
asset list path for invalid/unverifiable/non-hash values.
- Updated missing model detection to use hash lookup for BLAKE3-backed
asset-supported candidates before falling back to the existing node-type
asset matching path.
- Added `assetService.getInputAssetsIncludingPublic()` backed by a
dedicated cache that fetches input assets with `include_public=true` for
missing media fallback checks.
- Kept `assetsStore.inputAssets` user-only for widget/UI display, while
invalidating the public-inclusive missing-detection cache when input
assets may change.
- Added abort handling for paginated asset fetches and shared
public-input cache callers so one aborted caller does not cancel the
shared fetch for other callers.
- Added regression coverage for hash lookup, fallback behavior, abort
paths, public input fallback detection, and cache invalidation.
- **Dependencies**: None.
- **Change size**:
  - Production code: 4 files, 400 insertions, 24 deletions, net +376.
  - Test code: 4 files, 806 insertions, 59 deletions, net +747.
  - Total: 8 files, 1206 insertions, 83 deletions, net +1123.

- The public-inclusive input asset cache is intentionally separate from
`assetsStore.inputAssets`. The existing store data is user-only and
drives the asset widgets/sidebar, so using it for missing input
detection misses public assets. Making that store public-inclusive would
change UI data semantics; this PR instead keeps the UI dataset unchanged
and adds a missing-detection-specific cache in `assetService`.
- Hash lookup is only used when the workflow exposes a valid BLAKE3
hash. Filename-like values and invalid hash values still use the legacy
fallback path.
- Missing model detection keeps the existing fallback behavior for
non-hash candidates and for hash checks that are invalid or fail
transiently.
- Async model download cache refresh behavior is left unchanged; this PR
avoids coupling model download completion to input asset cache
invalidation.
- No browser/e2e test was added because this changes the missing asset
detection data path, not UI interaction or rendering. The behavioral
coverage is in unit tests for the asset service and the missing
media/model scanners.

- Fix `assetsStore.updateAssetTags()` partial-failure recovery. If
`removeAssetTags()` succeeds and `addAssetTags()` fails, the local model
asset cache can roll back to tags that the backend has already removed;
this should be handled in a focused model asset cache PR.
- Consider extracting shared hash-verification flow used by missing
media and missing model scans after this behavior stabilizes.
- Consider adding a concurrency cap or short-lived request cache for
large workflows with many unique hash lookups.
- Consider splitting `assetService.ts` further, e.g. hash helpers, abort
utilities, and the public-inclusive input asset cache.
- Consider tightening the asset hash service API shape so callers do not
directly depend on HTTP-oriented statuses such as `invalid`.
- Consider adding broader mutation-path coverage for public-inclusive
input cache invalidation once the cache has more consumers.

Linear: FE-534

Before <false positive / missing image / public asset>

https://github.com/user-attachments/assets/db7ce2a9-b169-4fae-bf9f-98bb93d3ee6d

After

https://github.com/user-attachments/assets/29af9f9e-b536-4fcd-a426-3add40bcb165

┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-11873-Use-hash-lookup-for-missing-asset-detection-3556d73d36508165babafb16614be0d8)
by [Unito](https://www.unito.io)

(cherry picked from commit 0491836)
@dosubot dosubot Bot added the size:L This PR changes 100-499 lines, ignoring generated files. label May 4, 2026
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented May 4, 2026

Important

Review skipped

Ignore keyword(s) in the title.

⛔ Ignored keywords (2)
  • [release]
  • [backport

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 18f6e6e6-1a82-47a0-b4b5-3da4c2c95fae

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch codex/backport-11873-core-1.43

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 4, 2026

🎨 Storybook: ✅ Built — View Storybook

Details

⏰ Completed at: 05/04/2026, 06:50:49 AM UTC

Links

@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 4, 2026

🎭 Playwright: ✅ 1046 passed, 0 failed · 2 flaky

📊 Browser Reports
  • chromium: View Report (✅ 1032 / ❌ 0 / ⚠️ 2 / ⏭️ 1)
  • chromium-2x: View Report (✅ 2 / ❌ 0 / ⚠️ 0 / ⏭️ 0)
  • chromium-0.5x: View Report (✅ 1 / ❌ 0 / ⚠️ 0 / ⏭️ 0)
  • mobile-chrome: View Report (✅ 11 / ❌ 0 / ⚠️ 0 / ⏭️ 0)

@codecov
Copy link
Copy Markdown

codecov Bot commented May 4, 2026

Codecov Report

❌ Patch coverage is 97.87234% with 4 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
src/platform/assets/services/assetService.ts 96.93% 3 Missing ⚠️
src/platform/missingMedia/missingMediaScan.ts 97.87% 1 Missing ⚠️
@@              Coverage Diff              @@
##           core/1.43   #11890      +/-   ##
=============================================
+ Coverage      44.27%   44.61%   +0.33%     
=============================================
  Files           1344     1344              
  Lines          68867    69041     +174     
  Branches       18211    18267      +56     
=============================================
+ Hits           30494    30803     +309     
+ Misses         37778    37643     -135     
  Partials         595      595              
Files with missing lines Coverage Δ
src/platform/missingModel/missingModelScan.ts 97.13% <100.00%> (+0.46%) ⬆️
src/stores/assetsStore.ts 84.36% <100.00%> (+17.69%) ⬆️
src/platform/missingMedia/missingMediaScan.ts 98.05% <97.87%> (-0.31%) ⬇️
src/platform/assets/services/assetService.ts 72.49% <96.93%> (+62.20%) ⬆️
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 4, 2026

📦 Bundle Size

⏳ Size data collection in progress…

⚡ Performance Report

canvas-idle: · 60.0 avg FPS · 59.9 P5 FPS ✅ (target: ≥52) · 0ms TBT · 61.0 MB heap
canvas-mouse-sweep: · 60.0 avg FPS · 59.9 P5 FPS ✅ (target: ≥52) · 0ms TBT · 56.5 MB heap
canvas-zoom-sweep: · 60.0 avg FPS · 59.5 P5 FPS ✅ (target: ≥52) · 0ms TBT · 64.4 MB heap
dom-widget-clipping: · 60.0 avg FPS · 59.5 P5 FPS ✅ (target: ≥52) · 0ms TBT · 46.8 MB heap
large-graph-idle: · 60.0 avg FPS · 59.9 P5 FPS ✅ (target: ≥52) · 0ms TBT · 53.1 MB heap
large-graph-pan: · 60.0 avg FPS · 59.9 P5 FPS ✅ (target: ≥52) · 0ms TBT · 56.7 MB heap
large-graph-zoom: · 60.0 avg FPS · 59.9 P5 FPS ✅ (target: ≥52) · 0ms TBT · 60.3 MB heap
minimap-idle: · 60.0 avg FPS · 59.9 P5 FPS ✅ (target: ≥52) · 0ms TBT · 54.9 MB heap
subgraph-dom-widget-clipping: · 60.0 avg FPS · 59.9 P5 FPS ✅ (target: ≥52) · 0ms TBT · 47.2 MB heap
subgraph-idle: · 60.0 avg FPS · 59.5 P5 FPS ✅ (target: ≥52) · 0ms TBT · 60.2 MB heap
subgraph-mouse-sweep: · 60.0 avg FPS · 59.5 P5 FPS ✅ (target: ≥52) · 0ms TBT · 52.2 MB heap
viewport-pan-sweep: · 60.0 avg FPS · 59.5 P5 FPS ✅ (target: ≥52) · 0ms TBT · 77.8 MB heap
vue-large-graph-idle: · 58.1 avg FPS · 59.5 P5 FPS ✅ (target: ≥52) · 0ms TBT · 157.9 MB heap
vue-large-graph-pan: · 58.1 avg FPS · 59.9 P5 FPS ✅ (target: ≥52) · 0ms TBT · 153.1 MB heap
workflow-execution: · 60.0 avg FPS · 59.5 P5 FPS ✅ (target: ≥52) · 0ms TBT · 46.3 MB heap

No regressions detected.

All metrics
Metric Baseline PR (median) Δ Sig
canvas-idle: avg frame time 17ms 17ms +0% z=-0.1
canvas-idle: p95 frame time 17ms 17ms -1%
canvas-idle: layout duration 0ms 0ms +0%
canvas-idle: style recalc duration 9ms 9ms +4% z=-1.7
canvas-idle: layout count 0 0 +0%
canvas-idle: style recalc count 10 10 +0% z=-2.1
canvas-idle: task duration 351ms 346ms -2% z=-1.6
canvas-idle: script duration 22ms 20ms -6% z=-2.2
canvas-idle: TBT 0ms 0ms +0%
canvas-idle: heap used 60.3 MB 61.0 MB +1%
canvas-idle: DOM nodes 20 20 +0% z=-2.0
canvas-idle: event listeners 6 6 +0% z=-1.2
canvas-mouse-sweep: avg frame time 17ms 17ms +0% z=-0.4
canvas-mouse-sweep: p95 frame time 17ms 17ms +0%
canvas-mouse-sweep: layout duration 4ms 4ms -10% z=-0.5
canvas-mouse-sweep: style recalc duration 43ms 35ms -18% z=-2.3
canvas-mouse-sweep: layout count 12 12 +0%
canvas-mouse-sweep: style recalc count 83 74 -11% z=-2.0
canvas-mouse-sweep: task duration 967ms 725ms -25% z=-2.4
canvas-mouse-sweep: script duration 135ms 130ms -4% z=-0.9
canvas-mouse-sweep: TBT 0ms 0ms +0%
canvas-mouse-sweep: heap used 56.2 MB 56.5 MB +0%
canvas-mouse-sweep: DOM nodes 64 58 -9% z=-1.7
canvas-mouse-sweep: event listeners 6 4 -33% z=-1.1
canvas-zoom-sweep: avg frame time 17ms 17ms -0% z=-1.1
canvas-zoom-sweep: p95 frame time 17ms 17ms +1%
canvas-zoom-sweep: layout duration 1ms 1ms -3% z=-0.5
canvas-zoom-sweep: style recalc duration 17ms 18ms +6% z=-0.6
canvas-zoom-sweep: layout count 6 6 +0%
canvas-zoom-sweep: style recalc count 31 32 +3% z=1.6
canvas-zoom-sweep: task duration 292ms 296ms +1% z=-1.3
canvas-zoom-sweep: script duration 24ms 24ms +2% z=-1.0
canvas-zoom-sweep: TBT 0ms 0ms +0%
canvas-zoom-sweep: heap used 64.8 MB 64.4 MB -0%
canvas-zoom-sweep: DOM nodes 79 80 +1% z=1.0
canvas-zoom-sweep: event listeners 19 19 +0% z=-0.9
dom-widget-clipping: avg frame time 17ms 17ms +0% z=0.1
dom-widget-clipping: p95 frame time 17ms 17ms +0%
dom-widget-clipping: layout duration 0ms 0ms +0%
dom-widget-clipping: style recalc duration 12ms 10ms -21% z=-0.4
dom-widget-clipping: layout count 0 0 +0%
dom-widget-clipping: style recalc count 13 12 -8% z=-2.2
dom-widget-clipping: task duration 333ms 336ms +1% z=-1.7
dom-widget-clipping: script duration 65ms 63ms -2% z=-1.5
dom-widget-clipping: TBT 0ms 0ms +0%
dom-widget-clipping: heap used 47.1 MB 46.8 MB -1%
dom-widget-clipping: DOM nodes 22 20 -9% z=-1.5
dom-widget-clipping: event listeners 2 2 +0% variance too high
large-graph-idle: avg frame time 17ms 17ms +0% z=-0.2
large-graph-idle: p95 frame time 17ms 17ms +0%
large-graph-idle: layout duration 0ms 0ms +0%
large-graph-idle: style recalc duration 9ms 9ms -1% z=-2.9
large-graph-idle: layout count 0 0 +0%
large-graph-idle: style recalc count 10 10 +0% z=-5.1
large-graph-idle: task duration 531ms 534ms +1% z=-0.2
large-graph-idle: script duration 94ms 97ms +3% z=-0.6
large-graph-idle: TBT 0ms 0ms +0%
large-graph-idle: heap used 53.0 MB 53.1 MB +0%
large-graph-idle: DOM nodes -256 -257 +0% z=-311.7
large-graph-idle: event listeners -125 -125 +0% z=-24.8
large-graph-pan: avg frame time 17ms 17ms +0% z=0.3
large-graph-pan: p95 frame time 17ms 17ms +0%
large-graph-pan: layout duration 0ms 0ms +0%
large-graph-pan: style recalc duration 16ms 16ms -4% z=-1.9
large-graph-pan: layout count 0 0 +0%
large-graph-pan: style recalc count 70 68 -3% z=-2.4
large-graph-pan: task duration 1073ms 1096ms +2% z=0.3
large-graph-pan: script duration 399ms 408ms +2% z=-0.0
large-graph-pan: TBT 0ms 0ms +0%
large-graph-pan: heap used 65.8 MB 56.7 MB -14%
large-graph-pan: DOM nodes -259 -263 +2% z=-170.9
large-graph-pan: event listeners -125 -127 +2% z=-159.3
large-graph-zoom: avg frame time 17ms 17ms +0%
large-graph-zoom: p95 frame time 17ms 17ms +0%
large-graph-zoom: layout duration 7ms 7ms -3%
large-graph-zoom: style recalc duration 16ms 16ms -4%
large-graph-zoom: layout count 60 60 +0%
large-graph-zoom: style recalc count 66 66 +0%
large-graph-zoom: task duration 1348ms 1298ms -4%
large-graph-zoom: script duration 525ms 491ms -7%
large-graph-zoom: TBT 0ms 0ms +0%
large-graph-zoom: heap used 60.2 MB 60.3 MB +0%
large-graph-zoom: DOM nodes -263 -264 +0%
large-graph-zoom: event listeners -125 -123 -2%
minimap-idle: avg frame time 17ms 17ms +0% z=0.1
minimap-idle: p95 frame time 17ms 17ms +0%
minimap-idle: layout duration 0ms 0ms +0%
minimap-idle: style recalc duration 8ms 9ms +6% z=-0.6
minimap-idle: layout count 0 0 +0%
minimap-idle: style recalc count 9 10 +11% z=0.6
minimap-idle: task duration 534ms 518ms -3% z=-0.2
minimap-idle: script duration 99ms 93ms -5% z=-0.5
minimap-idle: TBT 0ms 0ms +0%
minimap-idle: heap used 54.0 MB 54.9 MB +2%
minimap-idle: DOM nodes -261 -259 -1% z=-203.4
minimap-idle: event listeners -125 -125 +0% z=-196.2
subgraph-dom-widget-clipping: avg frame time 17ms 17ms +0% z=0.1
subgraph-dom-widget-clipping: p95 frame time 17ms 17ms +0%
subgraph-dom-widget-clipping: layout duration 0ms 0ms +0%
subgraph-dom-widget-clipping: style recalc duration 14ms 13ms -6% z=0.2
subgraph-dom-widget-clipping: layout count 0 0 +0%
subgraph-dom-widget-clipping: style recalc count 48 47 -2% z=-1.6
subgraph-dom-widget-clipping: task duration 363ms 360ms -1% z=-1.0
subgraph-dom-widget-clipping: script duration 128ms 126ms -2% z=-0.3
subgraph-dom-widget-clipping: TBT 0ms 0ms +0%
subgraph-dom-widget-clipping: heap used 47.3 MB 47.2 MB -0%
subgraph-dom-widget-clipping: DOM nodes 22 20 -9% z=-1.9
subgraph-dom-widget-clipping: event listeners 8 8 +0% z=-1.4
subgraph-idle: avg frame time 17ms 17ms +0% z=0.4
subgraph-idle: p95 frame time 17ms 17ms +1%
subgraph-idle: layout duration 0ms 0ms +0%
subgraph-idle: style recalc duration 10ms 11ms +6% z=0.7
subgraph-idle: layout count 0 0 +0%
subgraph-idle: style recalc count 11 11 +0% z=0.2
subgraph-idle: task duration 338ms 335ms -1% z=-1.1
subgraph-idle: script duration 19ms 17ms -11% z=-1.2
subgraph-idle: TBT 0ms 0ms +0%
subgraph-idle: heap used 60.6 MB 60.2 MB -1%
subgraph-idle: DOM nodes 22 23 +5% z=0.8
subgraph-idle: event listeners 6 6 +0% variance too high
subgraph-mouse-sweep: avg frame time 17ms 17ms +0% z=0.4
subgraph-mouse-sweep: p95 frame time 17ms 17ms +1%
subgraph-mouse-sweep: layout duration 5ms 4ms -7% z=-1.4
subgraph-mouse-sweep: style recalc duration 45ms 36ms -18% z=-1.8
subgraph-mouse-sweep: layout count 16 16 +0%
subgraph-mouse-sweep: style recalc count 84 78 -7% z=-1.1
subgraph-mouse-sweep: task duration 893ms 664ms -26% z=-1.5
subgraph-mouse-sweep: script duration 101ms 97ms -4% z=-0.6
subgraph-mouse-sweep: TBT 0ms 0ms +0%
subgraph-mouse-sweep: heap used 52.5 MB 52.2 MB -1%
subgraph-mouse-sweep: DOM nodes 73 65 -11% z=-0.9
subgraph-mouse-sweep: event listeners 6 4 -33% variance too high
viewport-pan-sweep: avg frame time 17ms 17ms -0%
viewport-pan-sweep: p95 frame time 17ms 17ms +0%
viewport-pan-sweep: layout duration 0ms 0ms +0%
viewport-pan-sweep: style recalc duration 43ms 43ms -0%
viewport-pan-sweep: layout count 0 0 +0%
viewport-pan-sweep: style recalc count 251 251 +0%
viewport-pan-sweep: task duration 3613ms 3595ms -1%
viewport-pan-sweep: script duration 1239ms 1263ms +2%
viewport-pan-sweep: TBT 0ms 0ms +0%
viewport-pan-sweep: heap used 75.3 MB 77.8 MB +3%
viewport-pan-sweep: DOM nodes -255 -256 +0%
viewport-pan-sweep: event listeners -111 -107 -4%
vue-large-graph-idle: avg frame time 17ms 17ms -0%
vue-large-graph-idle: p95 frame time 17ms 17ms +0%
vue-large-graph-idle: layout duration 0ms 0ms +0%
vue-large-graph-idle: style recalc duration 0ms 0ms +0%
vue-large-graph-idle: layout count 0 0 +0%
vue-large-graph-idle: style recalc count 0 0 +0%
vue-large-graph-idle: task duration 12013ms 11176ms -7%
vue-large-graph-idle: script duration 587ms 551ms -6%
vue-large-graph-idle: TBT 0ms 0ms +0%
vue-large-graph-idle: heap used 151.9 MB 157.9 MB +4%
vue-large-graph-idle: DOM nodes -8329 -8329 +0%
vue-large-graph-idle: event listeners -16464 -16466 +0%
vue-large-graph-pan: avg frame time 17ms 17ms +0%
vue-large-graph-pan: p95 frame time 17ms 17ms -1%
vue-large-graph-pan: layout duration 0ms 0ms +0%
vue-large-graph-pan: style recalc duration 13ms 13ms -1%
vue-large-graph-pan: layout count 0 0 +0%
vue-large-graph-pan: style recalc count 66 68 +3%
vue-large-graph-pan: task duration 14141ms 14185ms +0%
vue-large-graph-pan: script duration 840ms 837ms -0%
vue-large-graph-pan: TBT 0ms 0ms +0%
vue-large-graph-pan: heap used 166.7 MB 153.1 MB -8%
vue-large-graph-pan: DOM nodes -8329 -8329 +0%
vue-large-graph-pan: event listeners -16466 -16466 +0%
workflow-execution: avg frame time 17ms 17ms +0% z=0.6
workflow-execution: p95 frame time 17ms 17ms +1%
workflow-execution: layout duration 1ms 1ms +18% z=-0.6
workflow-execution: style recalc duration 23ms 17ms -26% z=-3.4
workflow-execution: layout count 4 4 +0% z=-1.7
workflow-execution: style recalc count 18 10 -44% z=-3.8
workflow-execution: task duration 115ms 90ms -22% z=-3.0
workflow-execution: script duration 24ms 24ms +0% z=-1.8
workflow-execution: TBT 0ms 0ms +0%
workflow-execution: heap used 46.5 MB 46.3 MB -1%
workflow-execution: DOM nodes 162 146 -10% z=-2.1
workflow-execution: event listeners 71 37 -48% z=-3.4
Historical variance (last 15 runs)
Metric μ σ CV
canvas-idle: avg frame time 17ms 0ms 0.0%
canvas-idle: layout duration 0ms 0ms 0.0%
canvas-idle: style recalc duration 11ms 1ms 8.2%
canvas-idle: layout count 0 0 0.0%
canvas-idle: style recalc count 11 1 5.0%
canvas-idle: task duration 395ms 31ms 7.9%
canvas-idle: script duration 25ms 2ms 8.8%
canvas-idle: TBT 0ms 0ms 0.0%
canvas-idle: DOM nodes 23 1 5.6%
canvas-idle: event listeners 12 5 40.9%
canvas-mouse-sweep: avg frame time 17ms 0ms 0.0%
canvas-mouse-sweep: layout duration 4ms 0ms 5.4%
canvas-mouse-sweep: style recalc duration 43ms 3ms 7.4%
canvas-mouse-sweep: layout count 12 0 0.0%
canvas-mouse-sweep: style recalc count 79 2 3.0%
canvas-mouse-sweep: task duration 865ms 58ms 6.7%
canvas-mouse-sweep: script duration 136ms 6ms 4.8%
canvas-mouse-sweep: TBT 0ms 0ms 0.0%
canvas-mouse-sweep: DOM nodes 62 3 4.2%
canvas-mouse-sweep: event listeners 8 4 49.4%
canvas-zoom-sweep: avg frame time 17ms 0ms 0.0%
canvas-zoom-sweep: layout duration 1ms 0ms 7.0%
canvas-zoom-sweep: style recalc duration 19ms 2ms 8.0%
canvas-zoom-sweep: layout count 6 0 0.0%
canvas-zoom-sweep: style recalc count 31 0 1.5%
canvas-zoom-sweep: task duration 327ms 23ms 7.1%
canvas-zoom-sweep: script duration 27ms 3ms 11.1%
canvas-zoom-sweep: TBT 0ms 0ms 0.0%
canvas-zoom-sweep: DOM nodes 79 1 1.0%
canvas-zoom-sweep: event listeners 24 5 21.8%
dom-widget-clipping: avg frame time 17ms 0ms 0.0%
dom-widget-clipping: layout duration 0ms 0ms 0.0%
dom-widget-clipping: style recalc duration 10ms 1ms 8.0%
dom-widget-clipping: layout count 0 0 0.0%
dom-widget-clipping: style recalc count 13 0 3.8%
dom-widget-clipping: task duration 365ms 16ms 4.5%
dom-widget-clipping: script duration 68ms 3ms 4.8%
dom-widget-clipping: TBT 0ms 0ms 0.0%
dom-widget-clipping: DOM nodes 22 1 6.4%
dom-widget-clipping: event listeners 8 6 81.2%
large-graph-idle: avg frame time 17ms 0ms 0.0%
large-graph-idle: layout duration 0ms 0ms 0.0%
large-graph-idle: style recalc duration 12ms 1ms 8.6%
large-graph-idle: layout count 0 0 0.0%
large-graph-idle: style recalc count 12 0 2.7%
large-graph-idle: task duration 542ms 54ms 10.0%
large-graph-idle: script duration 102ms 11ms 10.3%
large-graph-idle: TBT 0ms 0ms 0.0%
large-graph-idle: DOM nodes 25 1 3.7%
large-graph-idle: event listeners 26 6 23.2%
large-graph-pan: avg frame time 17ms 0ms 0.0%
large-graph-pan: layout duration 0ms 0ms 0.0%
large-graph-pan: style recalc duration 17ms 1ms 4.6%
large-graph-pan: layout count 0 0 0.0%
large-graph-pan: style recalc count 70 1 0.9%
large-graph-pan: task duration 1082ms 43ms 4.0%
large-graph-pan: script duration 408ms 20ms 4.8%
large-graph-pan: TBT 0ms 0ms 0.0%
large-graph-pan: DOM nodes 19 2 8.7%
large-graph-pan: event listeners 5 1 16.8%
minimap-idle: avg frame time 17ms 0ms 0.0%
minimap-idle: layout duration 0ms 0ms 0.0%
minimap-idle: style recalc duration 10ms 1ms 8.6%
minimap-idle: layout count 0 0 0.0%
minimap-idle: style recalc count 10 1 7.1%
minimap-idle: task duration 527ms 47ms 9.0%
minimap-idle: script duration 98ms 10ms 10.1%
minimap-idle: TBT 0ms 0ms 0.0%
minimap-idle: DOM nodes 19 1 7.1%
minimap-idle: event listeners 5 1 14.4%
subgraph-dom-widget-clipping: avg frame time 17ms 0ms 0.0%
subgraph-dom-widget-clipping: layout duration 0ms 0ms 0.0%
subgraph-dom-widget-clipping: style recalc duration 13ms 1ms 7.4%
subgraph-dom-widget-clipping: layout count 0 0 0.0%
subgraph-dom-widget-clipping: style recalc count 48 1 1.2%
subgraph-dom-widget-clipping: task duration 378ms 18ms 4.9%
subgraph-dom-widget-clipping: script duration 128ms 6ms 4.9%
subgraph-dom-widget-clipping: TBT 0ms 0ms 0.0%
subgraph-dom-widget-clipping: DOM nodes 22 1 5.0%
subgraph-dom-widget-clipping: event listeners 16 6 36.0%
subgraph-idle: avg frame time 17ms 0ms 0.0%
subgraph-idle: layout duration 0ms 0ms 0.0%
subgraph-idle: style recalc duration 10ms 1ms 7.5%
subgraph-idle: layout count 0 0 0.0%
subgraph-idle: style recalc count 11 1 6.0%
subgraph-idle: task duration 370ms 31ms 8.5%
subgraph-idle: script duration 20ms 3ms 13.2%
subgraph-idle: TBT 0ms 0ms 0.0%
subgraph-idle: DOM nodes 22 1 6.9%
subgraph-idle: event listeners 10 7 64.5%
subgraph-mouse-sweep: avg frame time 17ms 0ms 0.0%
subgraph-mouse-sweep: layout duration 5ms 0ms 6.8%
subgraph-mouse-sweep: style recalc duration 42ms 3ms 7.8%
subgraph-mouse-sweep: layout count 16 0 0.0%
subgraph-mouse-sweep: style recalc count 80 2 2.4%
subgraph-mouse-sweep: task duration 766ms 69ms 9.0%
subgraph-mouse-sweep: script duration 101ms 7ms 6.5%
subgraph-mouse-sweep: TBT 0ms 0ms 0.0%
subgraph-mouse-sweep: DOM nodes 67 2 3.3%
subgraph-mouse-sweep: event listeners 8 4 52.6%
workflow-execution: avg frame time 17ms 0ms 0.0%
workflow-execution: layout duration 2ms 0ms 9.4%
workflow-execution: style recalc duration 24ms 2ms 9.1%
workflow-execution: layout count 5 1 11.0%
workflow-execution: style recalc count 18 2 11.5%
workflow-execution: task duration 123ms 11ms 8.8%
workflow-execution: script duration 29ms 3ms 10.2%
workflow-execution: TBT 0ms 0ms 0.0%
workflow-execution: DOM nodes 161 7 4.4%
workflow-execution: event listeners 52 4 8.4%
Trend (last 15 commits on main)
Metric Trend Dir Latest
canvas-idle: avg frame time ▆▃▆▁▆▃▆█▆▆▄▃▃▄▃ ➡️ 17ms
canvas-idle: p95 frame time ➡️ NaNms
canvas-idle: layout duration ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ➡️ 0ms
canvas-idle: style recalc duration ▇▇▆▆▃█▄▃▄▃▇▄▁▆▇ ➡️ 11ms
canvas-idle: layout count ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ➡️ 0
canvas-idle: style recalc count █▃▅▂▅▆▃▁▂▁▂▅▆▅▆ ➡️ 12
canvas-idle: task duration ▃▃▃▆▂▃▃▅▆▂█▃▁▃▃ ➡️ 391ms
canvas-idle: script duration ▄▃▅▇▂▅▃▆▇▅█▄▁▅▆ ➡️ 27ms
canvas-idle: TBT ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ➡️ 0ms
canvas-idle: heap used ➡️ NaN MB
canvas-idle: DOM nodes █▇▆▅▃▇▃▁▂▂▅▆▆▆▇ ➡️ 24
canvas-idle: event listeners ▅█▅▄▁▅▁▁▁▄▅▅▁▅▄ 📉 11
canvas-mouse-sweep: avg frame time ▆█▆▃▁▃▁▆▆▁▃▆▆▃▃ ➡️ 17ms
canvas-mouse-sweep: p95 frame time ➡️ NaNms
canvas-mouse-sweep: layout duration ▁▃▂▄▁▂▁▃▆▂█▇▆▄▃ ➡️ 4ms
canvas-mouse-sweep: style recalc duration ▄▄▂▄▁▂▃▃▅▄█▆▂▄▄ ➡️ 43ms
canvas-mouse-sweep: layout count ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ➡️ 12
canvas-mouse-sweep: style recalc count █▅▄▃▂▂▁▄▄▅▆▅▂▇▄ ➡️ 79
canvas-mouse-sweep: task duration █▆▄▂▂▃▂▄▄▅█▆▁▆▄ ➡️ 868ms
canvas-mouse-sweep: script duration ▄▅▄▆▄▆▆▆▅▅█▆▁▅▆ ➡️ 139ms
canvas-mouse-sweep: TBT ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ➡️ 0ms
canvas-mouse-sweep: heap used ➡️ NaN MB
canvas-mouse-sweep: DOM nodes █▅▃▃▁▂▂▃▂▄▆▅▃▅▅ ➡️ 64
canvas-mouse-sweep: event listeners █▁▁▁▁▁▇▁▁▁██▇▁█ 📈 13
canvas-zoom-sweep: avg frame time ▅▅█▄▅▁▁▁▅▁▁▅▄▅▁ ➡️ 17ms
canvas-zoom-sweep: p95 frame time ➡️ NaNms
canvas-zoom-sweep: layout duration ▆▅▅▄▁▁█▅▃▅▇▆▁▂▆ ➡️ 1ms
canvas-zoom-sweep: style recalc duration ▆▅▄▆▅▃█▆▇▅▇▄▁▃▅ ➡️ 20ms
canvas-zoom-sweep: layout count ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ➡️ 6
canvas-zoom-sweep: style recalc count ▁▁▃▄▆▃▆█▄▄▆▁▆▁▆ ➡️ 32
canvas-zoom-sweep: task duration ▄▂▁▇▂▂▄▅▆▃█▄▁▁▅ ➡️ 338ms
canvas-zoom-sweep: script duration ▃▃▂▇▂▂▅▇▆▅█▄▁▂▆ ➡️ 30ms
canvas-zoom-sweep: TBT ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ➡️ 0ms
canvas-zoom-sweep: heap used ➡️ NaN MB
canvas-zoom-sweep: DOM nodes ▄▃▁▅█▁▃▆▄▅▅▃▃▄▃ ➡️ 79
canvas-zoom-sweep: event listeners ▁▁▂▅█▂▁▅▁▅▅▄▁▅▁ ➡️ 19
dom-widget-clipping: avg frame time ▂▄▅▅▂▄█▇▅▇▇▅▅▁▇ ➡️ 17ms
dom-widget-clipping: p95 frame time ➡️ NaNms
dom-widget-clipping: layout duration ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ➡️ 0ms
dom-widget-clipping: style recalc duration ▆▆▂▆▄▃██▄▁▆▇▆▃▅ ➡️ 10ms
dom-widget-clipping: layout count ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ➡️ 0
dom-widget-clipping: style recalc count ▇█▅█▅▄█▇▇▁▇▄▇▂▅ ➡️ 13
dom-widget-clipping: task duration ▃▃▁▅▄▃▅▆▅▂▇█▁▅▅ ➡️ 371ms
dom-widget-clipping: script duration ▅▄▄▆▆▅▇▇▆▃█▇▁▇▇ ➡️ 71ms
dom-widget-clipping: TBT ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ➡️ 0ms
dom-widget-clipping: heap used ➡️ NaN MB
dom-widget-clipping: DOM nodes ▇▇▄▇▅▄█▇▅▁▅▄▇▃▄ ➡️ 21
dom-widget-clipping: event listeners ▅▅▅▅▁▅██▁▁▁▁█▁▁ 📉 2
large-graph-idle: avg frame time ▅▅▅▅▅▂▁▂▄▅▄▂▂▅█ ➡️ 17ms
large-graph-idle: p95 frame time ➡️ NaNms
large-graph-idle: layout duration ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ➡️ 0ms
large-graph-idle: style recalc duration ▅▅▅▆▄▅▃▄▅▅▆█▁▄▆ ➡️ 13ms
large-graph-idle: layout count ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ➡️ 0
large-graph-idle: style recalc count █▆█▃▃▁▃▆▃▆▆▃▆██ ➡️ 12
large-graph-idle: task duration ▂▃▂▆▂▃▃▇▅▃██▁▂▅ ➡️ 569ms
large-graph-idle: script duration ▄▅▄▆▄▅▅▇▆▅█▆▁▃▆ ➡️ 110ms
large-graph-idle: TBT ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ➡️ 0ms
large-graph-idle: heap used ➡️ NaN MB
large-graph-idle: DOM nodes ▆█▅▂▅▃▁▂▃▅▅▆▂▆▅ ➡️ 25
large-graph-idle: event listeners ███▇██▄▁▄▇▇█▂█▇ ➡️ 29
large-graph-pan: avg frame time ▆▃▃▆█▃▁█▆▆▆▆█▁▆ ➡️ 17ms
large-graph-pan: p95 frame time ➡️ NaNms
large-graph-pan: layout duration ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ➡️ 0ms
large-graph-pan: style recalc duration ▃▂▄▄▁▅▂▂▁▄▄█▃▁▂ ➡️ 17ms
large-graph-pan: layout count ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ➡️ 0
large-graph-pan: style recalc count ▆▃█▂▃▂▂▂▁▇▅▃█▆▃ ➡️ 69
large-graph-pan: task duration ▄▃▄▆▄▄▄▆▄▄█▆▁▂▅ ➡️ 1100ms
large-graph-pan: script duration ▅▄▅▆▆▅▄▆▄▅█▄▁▄▅ ➡️ 413ms
large-graph-pan: TBT ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ➡️ 0ms
large-graph-pan: heap used ➡️ NaN MB
large-graph-pan: DOM nodes ▅▃▆▂▄▁▃▁▁▅▁▂█▅▂ ➡️ 18
large-graph-pan: event listeners █▆█▁▁▆▁▁▃▆▁▃██▃ ➡️ 5
minimap-idle: avg frame time ▃▆▆▃█▁█▆▆▃▃▆█▆█ ➡️ 17ms
minimap-idle: p95 frame time ➡️ NaNms
minimap-idle: layout duration ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ➡️ 0ms
minimap-idle: style recalc duration ▄█▁█▅▅█▅▅▃▅▁▁▄▆ ➡️ 10ms
minimap-idle: layout count ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ➡️ 0
minimap-idle: style recalc count ▃▅▂▄█▃▆▁▂▅▂▁▅▆▃ ➡️ 9
minimap-idle: task duration ▃▄▁▅▁▃▄▅▇▃█▅▁▁▅ ➡️ 547ms
minimap-idle: script duration ▄▆▃▇▃▅▆▆▇▅█▅▁▃▆ ➡️ 106ms
minimap-idle: TBT ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ➡️ 0ms
minimap-idle: heap used ➡️ NaN MB
minimap-idle: DOM nodes ▃▅▂▄█▃▆▁▂▅▂▁▅▆▃ ➡️ 19
minimap-idle: event listeners ▃▃▆▁▁▁▃▁▁▆▁▃█▆▁ ➡️ 4
subgraph-dom-widget-clipping: avg frame time ▅▄▄▄▄▄█▄▄▄▃▁▆▃▃ ➡️ 17ms
subgraph-dom-widget-clipping: p95 frame time ➡️ NaNms
subgraph-dom-widget-clipping: layout duration ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ➡️ 0ms
subgraph-dom-widget-clipping: style recalc duration ▂▄▃▅▅▃▂▅▇▃▄█▁▄▆ ➡️ 14ms
subgraph-dom-widget-clipping: layout count ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ➡️ 0
subgraph-dom-widget-clipping: style recalc count ▇█▆▃▆▃▁▆█▇▃▆▇█▅ ➡️ 48
subgraph-dom-widget-clipping: task duration ▂▃▃▆▅▅▂▅█▂▆█▁▂▇ ➡️ 398ms
subgraph-dom-widget-clipping: script duration ▃▃▃▄▅▅▂▄█▂▅▇▁▂▅ ➡️ 131ms
subgraph-dom-widget-clipping: TBT ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ➡️ 0ms
subgraph-dom-widget-clipping: heap used ➡️ NaN MB
subgraph-dom-widget-clipping: DOM nodes ▅▇▅▂▅▂▁▅▅▅▁▇▅█▄ ➡️ 22
subgraph-dom-widget-clipping: event listeners ▅▅▅▂▅▁▅██▁▁█▅█▅ 📈 16
subgraph-idle: avg frame time ▆▆█▁▆▃▆▆▆▃▆▁▃▆█ ➡️ 17ms
subgraph-idle: p95 frame time ➡️ NaNms
subgraph-idle: layout duration ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ➡️ 0ms
subgraph-idle: style recalc duration ▁▇▃▆▂▄▂▃▃▆▆▄▃▇█ ➡️ 12ms
subgraph-idle: layout count ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ➡️ 0
subgraph-idle: style recalc count ▃▆▃▃▂▅▁▂▁▆▃▃██▇ ➡️ 12
subgraph-idle: task duration ▁▃▁▇▁▁▃▆▅▂█▅▁▁▄ ➡️ 378ms
subgraph-idle: script duration ▁▃▂▇▁▂▃▇▆▂█▅▂▁▅ ➡️ 22ms
subgraph-idle: TBT ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ➡️ 0ms
subgraph-idle: heap used ➡️ NaN MB
subgraph-idle: DOM nodes ▃▅▃▂▁▄▁▂▁▅▃▂▇█▇ ➡️ 24
subgraph-idle: event listeners ▁▅▁▁▁▁▁▁▁▅▄▁███ 📈 21
subgraph-mouse-sweep: avg frame time ▅▄▁▃▃▄▆▄▆▃▃█▁▃▃ ➡️ 17ms
subgraph-mouse-sweep: p95 frame time ➡️ NaNms
subgraph-mouse-sweep: layout duration ▁▄▄▄▃▃▅▅▅▂█▇▂▃▆ ➡️ 5ms
subgraph-mouse-sweep: style recalc duration ▃▂▄▅▂▃▄▅█▃█▆▁▂▅ ➡️ 43ms
subgraph-mouse-sweep: layout count ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ➡️ 16
subgraph-mouse-sweep: style recalc count ▅▂▅▅▁▄▃▅█▅▆▄▂▄▅ ➡️ 81
subgraph-mouse-sweep: task duration ▃▂▄▅▂▄▄▅▇▄█▆▁▃▅ ➡️ 785ms
subgraph-mouse-sweep: script duration ▄▅▄▇▅▅▆▇▆▅██▁▄▆ ➡️ 105ms
subgraph-mouse-sweep: TBT ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ➡️ 0ms
subgraph-mouse-sweep: heap used ➡️ NaN MB
subgraph-mouse-sweep: DOM nodes ▅▁▄▅▁▄▃▃█▅▅▄▂▅▃ ➡️ 66
subgraph-mouse-sweep: event listeners ▇▁▂▇▁▂▂▂█▇▂▂▇▇▂ 📈 5
workflow-execution: avg frame time ▆▆▆▄▆▆▃▄▁▄█▆▅▄▆ ➡️ 17ms
workflow-execution: p95 frame time ➡️ NaNms
workflow-execution: layout duration ▁▆▁▃▂▄▃▂▃▃▅█▄▂▅ ➡️ 2ms
workflow-execution: style recalc duration ▃▇▅▇▁▅▆▇█▁██▂▄▆ ➡️ 25ms
workflow-execution: layout count ▁█▂▃▂▃▃▁▃▃▄▃▂▃▂ ➡️ 5
workflow-execution: style recalc count ▃█▅▇▁▄▅▆▅▅▅▅▄▄▂ ➡️ 15
workflow-execution: task duration ▂▅▄▅▁▄▆▆▆▁▇█▁▃▃ ➡️ 120ms
workflow-execution: script duration ▄▃▄▄▃▅▄▅▆▂▇█▁▃▄ ➡️ 29ms
workflow-execution: TBT ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ➡️ 0ms
workflow-execution: heap used ➡️ NaN MB
workflow-execution: DOM nodes ▂█▃▆▁▄▃▅▃█▃▃▄▃▁ ➡️ 152
workflow-execution: event listeners ▅███▁▅███▁██▅█▅ ➡️ 49
Raw data
{
  "timestamp": "2026-05-04T07:01:41.277Z",
  "gitSha": "c0f8e6d4caf33d538aa8416c71775692c87b6c8e",
  "branch": "codex/backport-11873-core-1.43",
  "measurements": [
    {
      "name": "canvas-idle",
      "durationMs": 2011.2799999999993,
      "styleRecalcs": 8,
      "styleRecalcDurationMs": 7.977999999999999,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 345.646,
      "heapDeltaBytes": 20561952,
      "heapUsedBytes": 63592656,
      "domNodes": 16,
      "jsHeapTotalBytes": 22282240,
      "scriptDurationMs": 20.449,
      "eventListeners": 6,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "canvas-idle",
      "durationMs": 2015.355999999997,
      "styleRecalcs": 10,
      "styleRecalcDurationMs": 9.326,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 343.906,
      "heapDeltaBytes": 20682536,
      "heapUsedBytes": 64969628,
      "domNodes": 20,
      "jsHeapTotalBytes": 22806528,
      "scriptDurationMs": 20.304,
      "eventListeners": 6,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.66333333333332,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "canvas-idle",
      "durationMs": 2026.7010000000028,
      "styleRecalcs": 11,
      "styleRecalcDurationMs": 9.630999999999998,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 348.12,
      "heapDeltaBytes": 21096596,
      "heapUsedBytes": 63916160,
      "domNodes": 22,
      "jsHeapTotalBytes": 23068672,
      "scriptDurationMs": 23.48,
      "eventListeners": 6,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.699999999999818
    },
    {
      "name": "canvas-mouse-sweep",
      "durationMs": 2068.80000000001,
      "styleRecalcs": 84,
      "styleRecalcDurationMs": 44.441,
      "layouts": 12,
      "layoutDurationMs": 3.309,
      "taskDurationMs": 991.978,
      "heapDeltaBytes": 16269752,
      "heapUsedBytes": 59231104,
      "domNodes": 68,
      "jsHeapTotalBytes": 23330816,
      "scriptDurationMs": 140.78000000000003,
      "eventListeners": 6,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "canvas-mouse-sweep",
      "durationMs": 1724.726999999973,
      "styleRecalcs": 74,
      "styleRecalcDurationMs": 32.966,
      "layouts": 12,
      "layoutDurationMs": 3.5170000000000003,
      "taskDurationMs": 709.151,
      "heapDeltaBytes": 16093572,
      "heapUsedBytes": 58959136,
      "domNodes": 58,
      "jsHeapTotalBytes": 23068672,
      "scriptDurationMs": 129.904,
      "eventListeners": 4,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "canvas-mouse-sweep",
      "durationMs": 1798.989000000006,
      "styleRecalcs": 74,
      "styleRecalcDurationMs": 35.41,
      "layouts": 12,
      "layoutDurationMs": 3.5820000000000003,
      "taskDurationMs": 725.4350000000001,
      "heapDeltaBytes": 16529456,
      "heapUsedBytes": 59522492,
      "domNodes": 57,
      "jsHeapTotalBytes": 23855104,
      "scriptDurationMs": 128.81500000000003,
      "eventListeners": 4,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.66333333333332,
      "p95FrameDurationMs": 16.800000000000182
    },
    {
      "name": "canvas-zoom-sweep",
      "durationMs": 1754.209000000003,
      "styleRecalcs": 32,
      "styleRecalcDurationMs": 18.148999999999997,
      "layouts": 6,
      "layoutDurationMs": 0.6200000000000001,
      "taskDurationMs": 301.925,
      "heapDeltaBytes": 358032,
      "heapUsedBytes": 49247288,
      "domNodes": 80,
      "jsHeapTotalBytes": 24117248,
      "scriptDurationMs": 24.5,
      "eventListeners": 19,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.66333333333332,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "canvas-zoom-sweep",
      "durationMs": 1742.5479999999993,
      "styleRecalcs": 32,
      "styleRecalcDurationMs": 19.354,
      "layouts": 6,
      "layoutDurationMs": 0.521,
      "taskDurationMs": 287.69800000000004,
      "heapDeltaBytes": 25066936,
      "heapUsedBytes": 67935652,
      "domNodes": 79,
      "jsHeapTotalBytes": 20971520,
      "scriptDurationMs": 23.12600000000001,
      "eventListeners": 19,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.66333333333335,
      "p95FrameDurationMs": 16.799999999999272
    },
    {
      "name": "canvas-zoom-sweep",
      "durationMs": 1732.8660000000582,
      "styleRecalcs": 33,
      "styleRecalcDurationMs": 18.26,
      "layouts": 6,
      "layoutDurationMs": 0.647,
      "taskDurationMs": 296.19700000000006,
      "heapDeltaBytes": 25010320,
      "heapUsedBytes": 67569284,
      "domNodes": 80,
      "jsHeapTotalBytes": 20185088,
      "scriptDurationMs": 24.134999999999998,
      "eventListeners": 19,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.66333333333332,
      "p95FrameDurationMs": 16.800000000000182
    },
    {
      "name": "dom-widget-clipping",
      "durationMs": 641.6670000000124,
      "styleRecalcs": 12,
      "styleRecalcDurationMs": 9.581000000000001,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 375.17599999999993,
      "heapDeltaBytes": 7393372,
      "heapUsedBytes": 50409720,
      "domNodes": 20,
      "jsHeapTotalBytes": 12582912,
      "scriptDurationMs": 73.565,
      "eventListeners": 2,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.700000000000273
    },
    {
      "name": "dom-widget-clipping",
      "durationMs": 574.6979999999553,
      "styleRecalcs": 14,
      "styleRecalcDurationMs": 14.189,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 335.867,
      "heapDeltaBytes": 6231444,
      "heapUsedBytes": 49112088,
      "domNodes": 23,
      "jsHeapTotalBytes": 13631488,
      "scriptDurationMs": 62.699000000000005,
      "eventListeners": 2,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.799999999999727
    },
    {
      "name": "dom-widget-clipping",
      "durationMs": 550.8659999999281,
      "styleRecalcs": 12,
      "styleRecalcDurationMs": 8.157000000000002,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 332.434,
      "heapDeltaBytes": 6197992,
      "heapUsedBytes": 49090028,
      "domNodes": 20,
      "jsHeapTotalBytes": 13631488,
      "scriptDurationMs": 62.90499999999999,
      "eventListeners": 2,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.799999999999727
    },
    {
      "name": "large-graph-idle",
      "durationMs": 2055.9089999999856,
      "styleRecalcs": 10,
      "styleRecalcDurationMs": 9.051,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 546.0419999999999,
      "heapDeltaBytes": 2839420,
      "heapUsedBytes": 54138244,
      "domNodes": -259,
      "jsHeapTotalBytes": 16551936,
      "scriptDurationMs": 106.13399999999999,
      "eventListeners": -125,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "large-graph-idle",
      "durationMs": 2039.289999999994,
      "styleRecalcs": 11,
      "styleRecalcDurationMs": 10.062000000000001,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 529.921,
      "heapDeltaBytes": 5182032,
      "heapUsedBytes": 56069372,
      "domNodes": -256,
      "jsHeapTotalBytes": 15921152,
      "scriptDurationMs": 95.109,
      "eventListeners": -127,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "large-graph-idle",
      "durationMs": 2037.6220000000558,
      "styleRecalcs": 10,
      "styleRecalcDurationMs": 9.229999999999999,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 533.671,
      "heapDeltaBytes": 4485184,
      "heapUsedBytes": 55629068,
      "domNodes": -257,
      "jsHeapTotalBytes": 16707584,
      "scriptDurationMs": 96.703,
      "eventListeners": -125,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.800000000000182
    },
    {
      "name": "large-graph-pan",
      "durationMs": 2116.5509999999867,
      "styleRecalcs": 68,
      "styleRecalcDurationMs": 15.745000000000003,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 1105.736,
      "heapDeltaBytes": 18419844,
      "heapUsedBytes": 72279444,
      "domNodes": -263,
      "jsHeapTotalBytes": 17698816,
      "scriptDurationMs": 419.822,
      "eventListeners": -127,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "large-graph-pan",
      "durationMs": 2136.447999999973,
      "styleRecalcs": 70,
      "styleRecalcDurationMs": 15.834999999999999,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 1033.6970000000001,
      "heapDeltaBytes": 7523232,
      "heapUsedBytes": 59429424,
      "domNodes": -257,
      "jsHeapTotalBytes": 18223104,
      "scriptDurationMs": 389.667,
      "eventListeners": -123,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.799999999999272
    },
    {
      "name": "large-graph-pan",
      "durationMs": 2115.62600000002,
      "styleRecalcs": 67,
      "styleRecalcDurationMs": 14.445,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 1096.117,
      "heapDeltaBytes": -1921096,
      "heapUsedBytes": 53109672,
      "domNodes": -264,
      "jsHeapTotalBytes": 17465344,
      "scriptDurationMs": 407.549,
      "eventListeners": -127,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "large-graph-zoom",
      "durationMs": 3147.1559999999954,
      "styleRecalcs": 65,
      "styleRecalcDurationMs": 15.207999999999998,
      "layouts": 60,
      "layoutDurationMs": 7.2010000000000005,
      "taskDurationMs": 1299.874,
      "heapDeltaBytes": 6814664,
      "heapUsedBytes": 62306132,
      "domNodes": -269,
      "jsHeapTotalBytes": 17494016,
      "scriptDurationMs": 479.497,
      "eventListeners": -123,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "large-graph-zoom",
      "durationMs": 3148.1210000000033,
      "styleRecalcs": 66,
      "styleRecalcDurationMs": 15.880999999999998,
      "layouts": 60,
      "layoutDurationMs": 6.845000000000001,
      "taskDurationMs": 1298.287,
      "heapDeltaBytes": 7825988,
      "heapUsedBytes": 63201588,
      "domNodes": -264,
      "jsHeapTotalBytes": 17231872,
      "scriptDurationMs": 492.91200000000003,
      "eventListeners": -123,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.800000000000182
    },
    {
      "name": "large-graph-zoom",
      "durationMs": 3163.385999999946,
      "styleRecalcs": 66,
      "styleRecalcDurationMs": 15.630999999999998,
      "layouts": 60,
      "layoutDurationMs": 6.906,
      "taskDurationMs": 1297.521,
      "heapDeltaBytes": 9678196,
      "heapUsedBytes": 64632564,
      "domNodes": -264,
      "jsHeapTotalBytes": 15921152,
      "scriptDurationMs": 490.604,
      "eventListeners": -123,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.66999999999998,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "minimap-idle",
      "durationMs": 2044.7690000000307,
      "styleRecalcs": 11,
      "styleRecalcDurationMs": 10.595999999999998,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 539.5980000000001,
      "heapDeltaBytes": 4949128,
      "heapUsedBytes": 57881612,
      "domNodes": -259,
      "jsHeapTotalBytes": 16551936,
      "scriptDurationMs": 99.463,
      "eventListeners": -125,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.66333333333332,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "minimap-idle",
      "durationMs": 2034.5949999999675,
      "styleRecalcs": 10,
      "styleRecalcDurationMs": 9.048,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 513.145,
      "heapDeltaBytes": 4184948,
      "heapUsedBytes": 56961320,
      "domNodes": -259,
      "jsHeapTotalBytes": 15659008,
      "scriptDurationMs": 93.451,
      "eventListeners": -125,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.800000000000182
    },
    {
      "name": "minimap-idle",
      "durationMs": 2045.6219999999803,
      "styleRecalcs": 8,
      "styleRecalcDurationMs": 7.9,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 517.731,
      "heapDeltaBytes": 3389184,
      "heapUsedBytes": 57538400,
      "domNodes": -264,
      "jsHeapTotalBytes": 17231872,
      "scriptDurationMs": 87.99900000000001,
      "eventListeners": -127,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "subgraph-dom-widget-clipping",
      "durationMs": 531.9010000000048,
      "styleRecalcs": 49,
      "styleRecalcDurationMs": 12.856,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 359.60400000000004,
      "heapDeltaBytes": 6789052,
      "heapUsedBytes": 49507984,
      "domNodes": 22,
      "jsHeapTotalBytes": 13369344,
      "scriptDurationMs": 126.13100000000001,
      "eventListeners": 8,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.800000000000182
    },
    {
      "name": "subgraph-dom-widget-clipping",
      "durationMs": 563.8539999999921,
      "styleRecalcs": 47,
      "styleRecalcDurationMs": 13.253999999999998,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 349.38599999999997,
      "heapDeltaBytes": 6241252,
      "heapUsedBytes": 49297300,
      "domNodes": 19,
      "jsHeapTotalBytes": 13631488,
      "scriptDurationMs": 123.043,
      "eventListeners": 8,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.700000000000273
    },
    {
      "name": "subgraph-dom-widget-clipping",
      "durationMs": 556.6180000000713,
      "styleRecalcs": 47,
      "styleRecalcDurationMs": 10.853000000000002,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 359.83700000000005,
      "heapDeltaBytes": 6560880,
      "heapUsedBytes": 49682500,
      "domNodes": 20,
      "jsHeapTotalBytes": 12845056,
      "scriptDurationMs": 131.286,
      "eventListeners": 8,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.663333333333338,
      "p95FrameDurationMs": 16.700000000000273
    },
    {
      "name": "subgraph-idle",
      "durationMs": 2024.9889999999766,
      "styleRecalcs": 11,
      "styleRecalcDurationMs": 11.716000000000001,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 335.22400000000005,
      "heapDeltaBytes": 10832560,
      "heapUsedBytes": 63153148,
      "domNodes": 23,
      "jsHeapTotalBytes": 25690112,
      "scriptDurationMs": 17.22,
      "eventListeners": 6,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.699999999999818
    },
    {
      "name": "subgraph-idle",
      "durationMs": 1991.0130000000095,
      "styleRecalcs": 12,
      "styleRecalcDurationMs": 10.94,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 329.99,
      "heapDeltaBytes": 20217924,
      "heapUsedBytes": 63419336,
      "domNodes": 23,
      "jsHeapTotalBytes": 22806528,
      "scriptDurationMs": 16.222,
      "eventListeners": 6,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.800000000000182
    },
    {
      "name": "subgraph-idle",
      "durationMs": 2015.7639999999901,
      "styleRecalcs": 10,
      "styleRecalcDurationMs": 9.580000000000002,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 338.352,
      "heapDeltaBytes": 11133924,
      "heapUsedBytes": 62555460,
      "domNodes": 20,
      "jsHeapTotalBytes": 25952256,
      "scriptDurationMs": 17.07,
      "eventListeners": 6,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.66333333333332,
      "p95FrameDurationMs": 16.799999999999272
    },
    {
      "name": "subgraph-mouse-sweep",
      "durationMs": 2010.6519999999932,
      "styleRecalcs": 88,
      "styleRecalcDurationMs": 41.702999999999996,
      "layouts": 16,
      "layoutDurationMs": 4.047000000000001,
      "taskDurationMs": 883.515,
      "heapDeltaBytes": 11853996,
      "heapUsedBytes": 54714504,
      "domNodes": 73,
      "jsHeapTotalBytes": 23330816,
      "scriptDurationMs": 97.31799999999998,
      "eventListeners": 6,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "subgraph-mouse-sweep",
      "durationMs": 1704.162999999994,
      "styleRecalcs": 77,
      "styleRecalcDurationMs": 34.626,
      "layouts": 16,
      "layoutDurationMs": 4.2509999999999994,
      "taskDurationMs": 638.434,
      "heapDeltaBytes": 2850672,
      "heapUsedBytes": 54728632,
      "domNodes": 65,
      "jsHeapTotalBytes": 25690112,
      "scriptDurationMs": 95.49199999999999,
      "eventListeners": 4,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.799999999999272
    },
    {
      "name": "subgraph-mouse-sweep",
      "durationMs": 1717.4179999999524,
      "styleRecalcs": 78,
      "styleRecalcDurationMs": 36.396,
      "layouts": 16,
      "layoutDurationMs": 4.4159999999999995,
      "taskDurationMs": 663.942,
      "heapDeltaBytes": 12024256,
      "heapUsedBytes": 55115088,
      "domNodes": 65,
      "jsHeapTotalBytes": 23330816,
      "scriptDurationMs": 97.015,
      "eventListeners": 4,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.799999999999272
    },
    {
      "name": "viewport-pan-sweep",
      "durationMs": 8173.880999999994,
      "styleRecalcs": 251,
      "styleRecalcDurationMs": 43.147000000000006,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 3884.474,
      "heapDeltaBytes": 32206872,
      "heapUsedBytes": 83208716,
      "domNodes": -256,
      "jsHeapTotalBytes": 25825280,
      "scriptDurationMs": 1433.95,
      "eventListeners": -111,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.66333333333332,
      "p95FrameDurationMs": 16.799999999999272
    },
    {
      "name": "viewport-pan-sweep",
      "durationMs": 8193.339999999978,
      "styleRecalcs": 251,
      "styleRecalcDurationMs": 42.836,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 3595.0229999999997,
      "heapDeltaBytes": 30556220,
      "heapUsedBytes": 81571676,
      "domNodes": -258,
      "jsHeapTotalBytes": 20320256,
      "scriptDurationMs": 1263.282,
      "eventListeners": -107,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.66333333333338,
      "p95FrameDurationMs": 16.80000000000109
    },
    {
      "name": "viewport-pan-sweep",
      "durationMs": 8201.348999999936,
      "styleRecalcs": 251,
      "styleRecalcDurationMs": 44.451,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 3544.0190000000002,
      "heapDeltaBytes": 631132,
      "heapUsedBytes": 51660520,
      "domNodes": -256,
      "jsHeapTotalBytes": 19591168,
      "scriptDurationMs": 1221.403,
      "eventListeners": -107,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.66333333333332,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "vue-large-graph-idle",
      "durationMs": 11187.885999999991,
      "styleRecalcs": 0,
      "styleRecalcDurationMs": 0,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 11176.018,
      "heapDeltaBytes": -54932264,
      "heapUsedBytes": 158366148,
      "domNodes": -8329,
      "jsHeapTotalBytes": 17129472,
      "scriptDurationMs": 550.6189999999999,
      "eventListeners": -16468,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.66333333333338,
      "p95FrameDurationMs": 16.799999999999272
    },
    {
      "name": "vue-large-graph-idle",
      "durationMs": 10861.754000000019,
      "styleRecalcs": 0,
      "styleRecalcDurationMs": 0,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 10853.414,
      "heapDeltaBytes": -30470176,
      "heapUsedBytes": 166940832,
      "domNodes": -8329,
      "jsHeapTotalBytes": 26828800,
      "scriptDurationMs": 546.0279999999999,
      "eventListeners": -16466,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 17.220000000000073,
      "p95FrameDurationMs": 16.799999999999272
    },
    {
      "name": "vue-large-graph-idle",
      "durationMs": 11838.275000000067,
      "styleRecalcs": 0,
      "styleRecalcDurationMs": 0,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 11826.155,
      "heapDeltaBytes": -33104956,
      "heapUsedBytes": 165616672,
      "domNodes": -8329,
      "jsHeapTotalBytes": 23945216,
      "scriptDurationMs": 597.8149999999999,
      "eventListeners": -16464,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 17.219999999999953,
      "p95FrameDurationMs": 16.80000000000291
    },
    {
      "name": "vue-large-graph-pan",
      "durationMs": 14413.596999999982,
      "styleRecalcs": 68,
      "styleRecalcDurationMs": 13.763999999999971,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 14389.617,
      "heapDeltaBytes": -36119728,
      "heapUsedBytes": 160564176,
      "domNodes": -8329,
      "jsHeapTotalBytes": -5500928,
      "scriptDurationMs": 835.474,
      "eventListeners": -16458,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 17.776666666666763,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "vue-large-graph-pan",
      "durationMs": 14205.50099999997,
      "styleRecalcs": 68,
      "styleRecalcDurationMs": 12.976000000000015,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 14185.126999999999,
      "heapDeltaBytes": -47476524,
      "heapUsedBytes": 148701352,
      "domNodes": -8329,
      "jsHeapTotalBytes": -434176,
      "scriptDurationMs": 837.3660000000001,
      "eventListeners": -16488,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 17.219999999999953,
      "p95FrameDurationMs": 16.799999999999272
    },
    {
      "name": "vue-large-graph-pan",
      "durationMs": 14113.562000000002,
      "styleRecalcs": 65,
      "styleRecalcDurationMs": 12.56099999999999,
      "layouts": 0,
      "layoutDurationMs": 0,
      "taskDurationMs": 14081.024999999998,
      "heapDeltaBytes": -23722412,
      "heapUsedBytes": 160560388,
      "domNodes": -8331,
      "jsHeapTotalBytes": 19488768,
      "scriptDurationMs": 846.4280000000001,
      "eventListeners": -16466,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 17.223333333333358,
      "p95FrameDurationMs": 16.700000000000728
    },
    {
      "name": "workflow-execution",
      "durationMs": 105.77999999998156,
      "styleRecalcs": 10,
      "styleRecalcDurationMs": 16.657999999999998,
      "layouts": 4,
      "layoutDurationMs": 1.585,
      "taskDurationMs": 89.923,
      "heapDeltaBytes": 2866996,
      "heapUsedBytes": 48529476,
      "domNodes": 146,
      "jsHeapTotalBytes": 0,
      "scriptDurationMs": 22.342000000000002,
      "eventListeners": 37,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.799999999999727
    },
    {
      "name": "workflow-execution",
      "durationMs": 433.74500000004446,
      "styleRecalcs": 16,
      "styleRecalcDurationMs": 20.458000000000002,
      "layouts": 4,
      "layoutDurationMs": 1.1099999999999999,
      "taskDurationMs": 103.46699999999998,
      "heapDeltaBytes": 4387960,
      "heapUsedBytes": 49246112,
      "domNodes": 154,
      "jsHeapTotalBytes": 262144,
      "scriptDurationMs": 23.802999999999997,
      "eventListeners": 71,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.800000000000182
    },
    {
      "name": "workflow-execution",
      "durationMs": 117.3110000000861,
      "styleRecalcs": 9,
      "styleRecalcDurationMs": 16.658,
      "layouts": 4,
      "layoutDurationMs": 1.4649999999999999,
      "taskDurationMs": 89.95500000000001,
      "heapDeltaBytes": 2745868,
      "heapUsedBytes": 48331036,
      "domNodes": 139,
      "jsHeapTotalBytes": 262144,
      "scriptDurationMs": 24.871000000000006,
      "eventListeners": 37,
      "totalBlockingTimeMs": 0,
      "frameDurationMs": 16.666666666666668,
      "p95FrameDurationMs": 16.700000000000273
    }
  ]
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:L This PR changes 100-499 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant