CPUPROFILE
Generated by scripts/gen-format-pages.py from docs/data/format-metadata/, FILE_FORMATS.csv and docs/formats-master.csv. Do not edit by hand: change the source, then run the script.
V8 CPU Profile Preview.
At a glance
| Purpose | A V8 CPU profile (.cpuprofile) from Chrome or Node DevTools: a call tree of sampled nodes with hit counts and time deltas. |
| Extensions | .cpuprofile |
| Poka parser | poka-cpuprofile |
| Viewer | poka-tree-viewer |
| Depth tier | Parser with a shared viewer (see Depth tiers) |
| Breadth tier | B3 Core (see Breadth tiers) |
How much Poka reads
B3 Core. Only the main content type or types are decoded (for example geometry but not materials, layers or annotations, or only one version family). The list of gaps is substantial.
Confidence: medium (the reviewer read the code). Basis: Reviewed 2026-10-26: read parsers/poka-cpuprofile/src/main.rs (339 lines) and plugin.json. No unit tests or tests/samples.rs; the corpus has speedscope_chrome65_simple.cpuprofile, read by no test. Covers .cpuprofile. The tree shows the duration, sample count, node count, sample interval and start time, the top functions by self time with their script and line, and the idle, program and garbage-collector categories. Judgement: B3: self time per function is decoded and ranked, but the call tree and timeline are not.
What Poka does not read
- The call tree (total time, callers and callees) is not shown
- The sample timeline is not drawn
- Only the top functions are listed
- Files over 4 GiB are cut (flagged)
Libraries
Libraries Poka uses or has assessed for this format, with the status, licence and language the registry records.
- serde_json (used; MIT OR Apache-2.0; Rust)
- cpuprofile_to_pprof (candidate; Apache-2.0; Rust; https://docs.rs/cpuprofile-to-pprof) — Parses V8 .cpuprofile JSON (nodes, samples, timeDeltas) in order to emit pprof; primarily a converter
Sources
- parsers/poka-cpuprofile/src/main.rs
- parsers/poka-cpuprofile/plugin.json