Java Profiling Workflow / Step 2 / Analyze profiling data
Analyze profiling results systematically: inventory results (flamegraphs, JFR, GC logs, thread dumps), identify problems (memory leaks, CPU hotspots, threading issues), document findings using standardized templates (profiling-problem-analysis-YYYYMMDD.md, profiling-solutions-YYYYMMDD.md), prioritize using Impact/Effort scores, and correlate multiple profiling files for validation.
What is covered in this Skill?
- Inventory: scan profiler/results/ for allocation-flamegraph, heatmap-cpu, memory-leak, *.jfr, *.log, *.txt
- Problem identification: memory (leaks, excessive allocations, GC pressure), performance (CPU hotspots, blocking), threading (deadlocks, contention, pool saturation)
- Documentation: docs/profiling-problem-analysis-YYYYMMDD.md, docs/profiling-solutions-YYYYMMDD.md
- Prioritization: Impact (1–5) / Effort (1–5), focus on high priority first
- Tools: async-profiler, JFR, JProfiler/YourKit, GCViewer, flamegraphs, heatmaps
Scope: Validate profiling results represent realistic load scenarios. Cross-reference multiple files. Include quantitative metrics.
Constraints
Validate profiling results represent realistic load before analysis. Document assumptions and limitations. Cross-reference multiple files.
- VALIDATE: Ensure profiling results represent realistic load scenarios before analysis
- DOCUMENT: Record assumptions and limitations in analysis reports
- CROSS-REFERENCE: Use multiple profiling files to validate findings
- BEFORE APPLYING: Read the reference for problem analysis and solutions templates
- EDGE CASE: If request scope is ambiguous, stop and ask a clarifying question before applying changes
- EDGE CASE: If required inputs, files, or tooling are missing, report what is missing and ask whether to proceed with setup guidance
When to use this skill
- Analyze JFR profile
- Analyze the profile
- Analyze the performance
- Analyze the memory
- Analyze the threading
- Analyze the GC
- Analyze the profiling
- Prioritize Java profiling bottlenecks by impact
- Performance analysis
Workflow
- Read analysis reference and inventory inputs
Read references/162-java-profiling-analyze.md and inventory profiling artifacts in profiler/results/.
- Validate data quality and assumptions
Confirm datasets represent realistic load conditions and record assumptions/limitations before drawing conclusions.
- Identify and prioritize bottlenecks
Analyze memory/CPU/threading findings, cross-reference multiple files, and prioritize issues by Impact/Effort.
- Document findings and solution options
Create docs/profiling-problem-analysis-YYYYMMDD.md and docs/profiling-solutions-YYYYMMDD.md with quantitative evidence.
Reference
For detailed guidance, examples, and constraints, see references/162-java-profiling-analyze.md.
1---
2name: 162-java-profiling-analyze
3description: Use when you need to analyze Java profiling data collected during the detection phase — including interpreting flamegraphs, memory allocation patterns, CPU hotspots, threading issues, systematic problem categorization, evidence documentation with profiling-problem-analysis and profiling-solutions markdown files, or prioritizing fixes using Impact/Effort scoring. This should trigger for requests such as Analyze JFR profile; Analyze the profile; Analyze the performance; Analyze the memory; Analyze the threading; Analyze GC logs from profiling; Prioritize Java profiling bottlenecks by impact. Part of Plinth Toolkit
4license: Apache-2.0
5metadata:
6 author: Juan Antonio Breña Moral
7 version: 0.18.0
8---
9
10# Java Profiling Workflow / Step 2 / Analyze profiling data
11
12Analyze profiling results systematically: inventory results (flamegraphs, JFR, GC logs, thread dumps), identify problems (memory leaks, CPU hotspots, threading issues), document findings using standardized templates (profiling-problem-analysis-YYYYMMDD.md, profiling-solutions-YYYYMMDD.md), prioritize using Impact/Effort scores, and correlate multiple profiling files for validation.
13
14**What is covered in this Skill?**
15
16- Inventory: scan profiler/results/ for allocation-flamegraph, heatmap-cpu, memory-leak, *.jfr, *.log, *.txt
17- Problem identification: memory (leaks, excessive allocations, GC pressure), performance (CPU hotspots, blocking), threading (deadlocks, contention, pool saturation)
18- Documentation: docs/profiling-problem-analysis-YYYYMMDD.md, docs/profiling-solutions-YYYYMMDD.md
19- Prioritization: Impact (1–5) / Effort (1–5), focus on high priority first
20- Tools: async-profiler, JFR, JProfiler/YourKit, GCViewer, flamegraphs, heatmaps
21
22**Scope:** Validate profiling results represent realistic load scenarios. Cross-reference multiple files. Include quantitative metrics.
23
24## Constraints
25
26Validate profiling results represent realistic load before analysis. Document assumptions and limitations. Cross-reference multiple files.
27
28- **VALIDATE**: Ensure profiling results represent realistic load scenarios before analysis
29- **DOCUMENT**: Record assumptions and limitations in analysis reports
30- **CROSS-REFERENCE**: Use multiple profiling files to validate findings
31- **BEFORE APPLYING**: Read the reference for problem analysis and solutions templates
32- **EDGE CASE**: If request scope is ambiguous, stop and ask a clarifying question before applying changes
33- **EDGE CASE**: If required inputs, files, or tooling are missing, report what is missing and ask whether to proceed with setup guidance
34
35## When to use this skill
36
37- Analyze JFR profile
38- Analyze the profile
39- Analyze the performance
40- Analyze the memory
41- Analyze the threading
42- Analyze the GC
43- Analyze the profiling
44- Prioritize Java profiling bottlenecks by impact
45- Performance analysis
46
47## Workflow
48
491. **Read analysis reference and inventory inputs**
50
51Read `references/162-java-profiling-analyze.md` and inventory profiling artifacts in `profiler/results/`.
52
532. **Validate data quality and assumptions**
54
55Confirm datasets represent realistic load conditions and record assumptions/limitations before drawing conclusions.
56
573. **Identify and prioritize bottlenecks**
58
59Analyze memory/CPU/threading findings, cross-reference multiple files, and prioritize issues by Impact/Effort.
60
614. **Document findings and solution options**
62
63Create `docs/profiling-problem-analysis-YYYYMMDD.md` and `docs/profiling-solutions-YYYYMMDD.md` with quantitative evidence.
64
65## Reference
66
67For detailed guidance, examples, and constraints, see [references/162-java-profiling-analyze.md](references/162-java-profiling-analyze.md).