CPU Profile — Folded Stacks After a Regression (txt)
The same workload after a change: JSON decoding costs four times as much and gains a new reflect frame, while cache lookups get cheaper. Paired with the baseline so a differential flamegraph can be scored against a known regression and a known improvement.
main;runtime.main;http.ListenAndServe;http.(*conn).serve;checkout.Handle;checkout.price;pricing.applyDiscount 4120
main;runtime.main;http.ListenAndServe;http.(*conn).serve;checkout.Handle;checkout.price;pricing.lookupRate;sql.(*DB).QueryContext 2880
main;runtime.main;http.ListenAndServe;http.(*conn).serve;checkout.Handle;checkout.price;pricing.lookupRate;cache.Get 480
main;runtime.main;http.ListenAndServe;http.(*conn).serve;checkout.Handle;encoding/json.Marshal;encoding/json.(*encodeState).marshal 3310
main;runtime.main;http.ListenAndServe;http.(*conn).serve;checkout.Handle;encoding/json.Unmarshal;encoding/json.(*decodeState).object 8760
main;runtime.main;http.ListenAndServe;http.(*conn).serve;checkout.Handle;inventory.Reserve;grpc.(*ClientConn).Invoke 1760
main;runtime.main;http.ListenAndServe;http.(*conn).serve;auth.Verify;crypto/ecdsa.Verify 980
main;runtime.main;http.ListenAndServe;http.(*conn).serve;middleware.Log;fmt.Sprintf 610
main;runtime.main;metrics.flushLoop;prometheus.(*Registry).Gather 540
main;runtime.main;runtime.gcBgMarkWorker;runtime.scanobject 1880
main;runtime.main;runtime.mcall;runtime.schedule;runtime.findRunnable 720
main;runtime.main;runtime.sysmon 130
main;runtime.main;http.ListenAndServe;http.(*conn).serve;checkout.Handle;encoding/json.Unmarshal;encoding/json.(*decodeState).object;reflect.Value.Set 3960
Specifications
- Stacks
- 13
- Total Samples
- 30130
- New Stacks
- 1
- Regressed Path
- encoding/json.(*decodeState).object
- Regression Factor
- 4
- Improved Path
- cache.Get
- Sample Growth Percent
- 46.5
Testing contract
Expected to pass- Scenario
- Generate a differential flamegraph from the baseline and this profile.
- Expected result
- The JSON decode path shows as the dominant regression with one entirely new stack ending in reflect.Value.Set, and cache.Get shows as an improvement rather than being lost in the noise.
What is a .txt file?
TXT is a plain-text file containing unformatted character data with no styling or structure beyond line breaks. Its interpretation depends on character encoding, most commonly UTF-8, and on line-ending convention. It is the most universal and portable text container.
How to use this file
Use an example TXT to test encoding detection, line-ending (LF versus CRLF) handling, and any tool that reads or streams raw text input.
How to use this file for testing
“CPU Profile — Folded Stacks After a Regression (txt)” is a deterministic Novus Examples fixture for Observability, Performance testing, Visual diff / regression. Structured and plain-text telemetry with known timestamps, levels, request identifiers, and error states for testing log ingestion, correlation, dashboards, and alert pipelines.
Documented properties for this file: TXT · 1,351 bytes. Compare results against paired or grouped companions on this page when present (clean↔damaged, searchable↔scanned, or format twins) so scores stay reproducible across runs.
Download the file once, keep the path stable in CI or local scripts, and treat the spec table as the contract: dimensions, seeds, field lists, and roles are intentional. Corrupt or invalid samples are labelled as such — expect parsers to fail loudly rather than silently accept them.
Telemetry fixtures use fixed trace IDs, span IDs, and timestamps so ingestion is reproducible run to run. Point your collector, parser, or query layer at the file and assert the documented span tree, metric families, or severity mix; service and host names are invented.
Related files
- txtAllocation Profile — Folded Stacks Weighted in Bytes (txt)An allocation profile in the same folded syntax as the CPU profiles, but weighted in bytes rather than samples. The format carries no unit, so a viewer that assumes samples renders 65 MB of allocation as 68 million samples — which is what this fixture is for.

- jsonChrome DevTools CPU Profile — Node Tree with Sample Deltas (json)The .cpuprofile shape V8 emits: a node tree with call frames, a samples array of node IDs and a parallel timeDeltas array, plus the synthesized (idle), (program) and (garbage collector) nodes. Counting those synthetic frames as application time is the classic misreading.

- txtHeap Profile — In-Use Bytes by Allocation Site (txt)A heap profile measuring bytes still live at the sample point, not bytes ever allocated — which is why its shape differs from the allocation profile of the same process. 620 MB retained across five sites, with an unbounded session cache at the top.

- txtLinux perf script — Sample Records with Call Chains (txt)Raw perf script output — a header line per sample followed by tab-indented call-chain frames with addresses, symbols, offsets and DSO paths, samples separated by blank lines. The input side of stackcollapse, including unresolved frames a symbolizer could not name.

- txtpprof — Annotated Source Listing (txt)Line-level profile output: two routines with per-source-line flat and cumulative cost, a dot for lines that cost nothing, and units that switch between seconds and milliseconds within one column. Source lines keep their real tabs, which most column parsers do not survive.

- txtpprof — Top Report Text Output (txt)The text report pprof prints for the same profile as the folded fixtures: a metadata header, then flat and cumulative columns where frames that are never a leaf carry zero flat time and near-total cumulative time. Column-aligned output with a bare 0 rather than 0s, which is where naive column parsing fails.

Generated by generation/observability.py. Free for any use, no attribution required — license.