Repository navigation
Document the path from a capture to what to optimize - #13
Merged
Merged
Conversation
lhotari
added this pull request to stack #14
September 23, 2026 20:16
lhotari
removed this pull request from stack #14
September 23, 2026 20:17
lhotari
force-pushed
the
readme-0.5.0
branch
from
September 23, 2026 20:22
ec03f10 to
b3607c0
Compare
lhotari
added this pull request to stack #15
September 23, 2026 20:22
lhotari
force-pushed
the
readme-0.5.0
branch
2 times, most recently
from
September 23, 2026 20:37
7bd3c7a to
7dd76f0
Compare
The README explained capture, correlation and slicing, and stopped at "open offcpu.html". It now continues to the answer: - Correlate step: --estimate-population true, and why comparisons need it (a Pulsar broker's busy waits: 49.0 s observed, 101.4 s estimated). - "Other views of the same recording": which converter views the agent's JFR supports, only for events that asyncProfilerOptions configured, and that stacks/top --collapsed-input apply to them. - Step 6, "Find what to optimize": top by application boundary with its blocker, the idle table and the over-exclusion line, a trimmed flame graph with --root-at and --collapse-leaf, and top --baseline for two runs, with the Pulsar broker's top rows as the example. - "Analyzing with AI agents": start from jonoffcpu-summary.md, drill down with top --format json, stacks and export, and never hand over the raw capture or JFR. - "Analyzing with SQL": the DuckDB boundary ranking and two-run comparison on the 0.5.0 export, --run-label and --run-metadata. - "Example: Apache Pulsar": the numbers that motivated this work, and why a glibc image is needed for the time without an application frame. - The correlator options table now points at the generated help. CommandLineTest's README check now also covers the new sections, so every option they name must exist in the parser. The version coordinates stay at 0.4.0: the release workflow rewrites both places on release.
lhotari
force-pushed
the
readme-0.5.0
branch
from
September 23, 2026 20:37
7dd76f0 to
1e7bfd7
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Top of the 0.5.0 correlator stack (GitHub stack #15; spec:
readme-0.5.0.md). Based on #12 (top/summarize).What changes (README)
--estimate-population true, with the reason (the broker's busy slice is 49.0 s observed vs 101.4 s estimated). Useful on real captures once Account for counted sequence contention in population estimates #9 lands.asyncProfilerOptionsevent, and--collapsed-inputfor them.topby boundary and blocker, the idle table and over-exclusion line, a trimmed flame graph with--root-at+--collapse-leaf, andtop --baseline. The fixture's top three rows serve as the example.--run-label,--run-metadata, the estimated-weights caveat) and "Example: Apache Pulsar".help <command>as the reference.--run-metadata) landed with Add frame-level stack transforms to stacks #10, Add top and summarize: ranked tables and an analysis digest #12 and Make export friendlier to SQL #11.Verification
./gradlew spotlessCheck :jonoffcpu-correlator:check -PjonoffcpuFixtures=…passes.CommandLineTest's README check now also covers step 6, the AI agents section and the SQL section, so every option they name must exist in the parser.top,top --baseline,stacks … --root-at … --collapse-leaf-from …,stacks --collapsed-input,export,summarize). The SQL recipes reproduce the stated numbers in DuckDB 1.5.5; that is also covered byExportTest/testFixtureAcceptancein Make export friendlier to SQL #11.jfr-converterrendering commands were not run here.Deviations
Pass a tag such asline and the three Gradle coordinates) after a release. Changing them now would point readers at an unpublished 0.5.0.lh-use-jonoffcpu-profilerbranch nor a PR is public. Add the links once they are.preset:jvm-idlealone, BookKeeper'sinternalTakeAllidle loop would top the table.