poka.sh

Docs

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