PPROF
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.
Go pprof Preview.
At a glance
| Purpose | A Go pprof profile (.pprof): a gzip-compressed protobuf of samples, locations and functions. |
| Extensions | .pprof |
| Poka parser | poka-pprof |
| 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-pprof/src/main.rs (747 lines) and plugin.json. No unit tests or tests/samples.rs; the corpus has sample.pprof, read by no test. Covers .pprof and .prof. The tree decompresses the gzip wrapper and walks the Profile message: profile kind, sample types, sample, location, function and mapping counts, duration, period and time, and the top 20 functions by self value. Judgement: B3: self values per function are decoded and ranked, but the call graph is not.
What Poka does not read
- Cumulative values and the call graph are not shown
- Only the first sample type is ranked (judgement from the code)
- Labels and mappings are counted, not shown
- Only the top 20 functions are listed
Libraries
Libraries Poka uses or has assessed for this format, with the status, licence and language the registry records.
- flate2 (used; MIT OR Apache-2.0; Rust)
- google/pprof (candidate; Apache-2.0; Go; https://github.com/google/pprof) — Reference tool and profile package; reads profile.proto data and defines the schema (proto/profile.proto). No Rust decoder found; Rust pprof-rs only writes.
Sources
- parsers/poka-pprof/src/main.rs
- parsers/poka-pprof/plugin.json