Skip to content

Name blocking code that isn't tracked - #8

Merged
thelastbackspace merged 2 commits into
mainfrom
feat/untracked-blocking
Nov 6, 2026
Merged

thelastbackspace merged 2 commits into
mainfrom
feat/untracked-blocking

Conversation

@thelastbackspace

Copy link
Copy Markdown
Owner

traceperf run (and TRACEPERF_PROFILE_BLOCKING=1 with traceperf/auto) samples the CPU during the synchronous part of blocking calls, so explain names the function and line, e.g. CPU time: buildReport (server.js:10) 100%.

  • Code V8 inlined into its caller is credited to the inlined function. Callers and callees are learned across profile windows, because optimized code can appear only in inlined form.
  • Native work is named by the calling app function (hashPassword → pbkdf2Sync), and GC pauses are reported as GC.
  • run compares clients' latency with the app's own timings to report queueing the app can't see (GET /ping took 0.2 ms in the app but clients waited 185 ms).
  • New example app blocking-native. Example-app checks now require the function names. They were stable across repeated runs.
  • 218 tests (3 skipped), lint, typedoc and 11/11 package checks pass.

…king calls, inlined and native frames resolved; queueing the app can't see in traceperf run
@thelastbackspace
thelastbackspace merged commit 847dc91 into main Nov 6, 2026
14 checks passed
@thelastbackspace
thelastbackspace deleted the feat/untracked-blocking branch November 6, 2026 11:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant