Agent skill · data analytics · microsoft

cpu-profile-analysis

Analyze V8/Chrome CPU profiles (.cpuprofile) and DevTools trace files (Trace-*.json). Use when: profiling performance, investigating slow functions, comparing code paths, finding bottlenecks, analyzing timeToRequest, understanding call trees from sampling profiler data, analyzing layout/paint/rendering, investigating user timing marks.

Why this skill is useful

Provides specific analysis techniques and scripts for interpreting V8/Chrome CPU profiles that the AI wouldn't reliably generate on its own.

What it needs

Requires node installed locally. About 11k tokens when loaded. Last updated 2026-08-07. 188,455 stars on the source repository.

What this skill does

Analyze Performance Profiles Analyze .cpuprofile files (V8 sampling profiler) and DevTools trace files (Trace-.json, Chrome Trace Event Format) to find performance bottlenecks, compare code paths, and understand timing. When to Use User provides a .cpuprofile or Trace-.json file and wants to understand performance Investigating why one code path is slower than another Finding what functions consume the most time Comparing "before/after" or "old/new" implementations in a single profile Investigating layout thrashing, long tasks, or rendering bottlenecks (trace files) Analyzing VS Code user timing marks like code/didResolveTextFileEditorModel (trace files) Understanding multi-process behavior (Browser, Renderer, GPU processes in trace files) Detecting File Type .cpuprofile: Top-level JSON with nodes, samples, timeDeltas keys. Created by the VS Code profiler. Trace-.json: Top-level JSON with traceEvents array (and optional metadata). Created by Chrome/Electron DevTools (Performance tab). These are richer than .cpuprofile -- they contain CPU samples, layout/paint events, user timing marks, GC events, input events, and multi-process data. Key Concepts Sampling profiler: The profiler periodically snapshots the call stack. Not every function appears -- only those on the stack when the profiler sampled. Don't expect exact function names; look for patterns and nearby activity. Self time: Time spent in the function itself (the leaf/innermost frame). Total time: Time the function was anywhere on the stack (includes callees). Idle samples: Frames labeled (idle), (program), or (garbage collector) represent no user code running. …

How to use it

Reference it in AdaL, Claude Code, Cursor or any coding agent — nothing to install:

@skills microsoft/cpu-profile-analysis

View the source on GitHub

Browse the @skills marketplace