Skip to main content
skill CX Codex

162-java-profiling-analyze — Claude Code skill: read Java profiles

This skill reads the Java profiling data you already collected — flamegraphs, JFR, GC logs, thread dumps — and sorts the problems it finds by priority.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add jabrena/plinth --skill 162-java-profiling-analyze -a claude-code
Open on GitHub

What 162-java-profiling-analyze does

It is step two of the profiling workflow in Plinth Toolkit. The skill starts by taking inventory of artifacts in profiler/results/: allocation-flamegraph, heatmap-cpu, memory-leak, plus *.jfr, *.log and *.txt files. From there it looks for leaks and excessive allocations, GC pressure, CPU hotspots, blocking, deadlocks, lock contention and thread pool saturation.

Findings go into two files: docs/profiling-problem-analysis-YYYYMMDD.md and docs/profiling-solutions-YYYYMMDD.md. Each issue gets an Impact (1–5) and Effort (1–5) score so you know what to fix first. The skill works with async-profiler, JFR, JProfiler/YourKit, GCViewer, flamegraphs and heatmaps.

The constraint that matters most is baked into the skill itself: it checks that your captures came from a realistic load before drawing conclusions. A profile taken against an empty database will send you chasing the wrong hotspot, so the skill asks you to record assumptions and limitations. It also cross-references several files instead of trusting one. If your request is ambiguous, it stops and asks a clarifying question first.

What it helps with

  • read a flamegraph and locate CPU hotspots
  • tell a memory leak apart from ordinary GC pressure
  • merge findings from JFR, GC logs and thread dumps into one report
  • rank performance bugs by Impact and Effort
  • check that captures reflect a realistic load

Example prompts for the agent

  • Analyze the JFR profile in profiler/results/
  • Go through the GC logs and thread dumps, find the bottlenecks
  • Prioritize the bottlenecks by Impact/Effort and write the report to docs/

How to install 162-java-profiling-analyze

1Skills CLI (Vercel)

npx skills add jabrena/plinth --skill 162-java-profiling-analyze -a claude-code

2Manually: put the files in place

~/.claude/skills/162-java-profiling-analyze/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/162-java-profiling-analyze/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about 162-java-profiling-analyze

How do I install 162-java-profiling-analyze in Claude?

Run npx skills add jabrena/plinth --skill 162-java-profiling-analyze -a claude-code. The skill then lives at ~/.claude/skills/162-java-profiling-analyze/SKILL.md.

What does 162-java-profiling-analyze do?

It analyzes Java profiling output: flamegraphs, JFR, GC logs, thread dumps. It identifies memory leaks, CPU hotspots and threading problems, then documents them and assigns priorities.

Which files does the skill create?

Two reports under docs/: profiling-problem-analysis-YYYYMMDD.md with the problem breakdown and profiling-solutions-YYYYMMDD.md with solution options.

Source text

SKILL.md · Apache-2.0
---
name: 162-java-profiling-analyze
description: 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
license: Apache-2.0
metadata:
  author: Juan Antonio Breña Moral
  version: 0.19.0
---
# 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

1. **Read analysis reference and inventory inputs**

Read `references/162-java-profiling-analyze.md` and inventory profiling artifacts in `profiler/results/`.

2. **Validate data quality and assumptions**

Confirm datasets represent realistic load conditions and record assumptions/limitations before drawing conclusions.

3. **Identify and prioritize bottlenecks**

Analyze memory/CPU/threading findings, cross-reference multiple files, and prioritize issues by Impact/Effort.

4. **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](references/162-java-profiling-analyze.md).

© Juan Antonio Breña Moral · Apache-2.0 · jabrena/plinth

Similar skills

Everything for Backend and APIs →

From the same set40

322-frameworks-spring-boot-testing-integration-tests A skill for writing and reviewing Spring Boot 4.0.x integration tests: Testcontainers, persistence slices, HTTP assertions. CX Codex +1 357installs 030-architecture-adr-general Interactive skill that interviews developers to capture architecture decisions for Java projects in MADR format. Useful when choosing databases or framework stacks. CX Codex +1 351installs 151-java-performance-jmeter Sets up JMeter load testing in Java projects by creating a run-jmeter.sh script and standard test directories. CX Codex +1 349installs 313-frameworks-spring-db-migrations-flyway A skill for adding and reviewing Flyway migrations in Spring Boot: Maven dependencies, db/migration scripts, spring.flyway.* settings and migration ordering. CX Codex +1 352installs 113-java-maven-documentation Generates a DEVELOPER.md guide for Maven projects. It parses pom.xml structure to list plugin goals and build profiles. CX Codex +1 348installs 014-agile-user-story Walks the agent through a template questionnaire and writes a Markdown user story. Useful when feature requirements need splitting. CX Codex +1 339installs 163-java-profiling-refactor Takes a finished profiling report and edits Java code around the bottlenecks it names: CPU, memory, threading. Handy once the analysis is done and the fixes are next. CX Codex +1 337installs 161-java-profiling-detect This skill sets up Java profiling to collect CPU, memory, lock, GC and I/O data. Useful when an app is slow and you need to see where time goes. CX Codex +1 337installs

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor