Use when you need to set up Java application profiling to detect and measure performance issues — including trusted preinstalled async-profiler v4.x setup, problem-driven profiling (CPU, memory, threading, GC, I/O), interactive profiling scripts, JFR integration with Java 25 (JEP 518, JEP 520), or collecting profiling data with flamegraphs and JFR recordings. This should trigger for requests such as Improve the code with profiling; Apply Profiling; Refactor the code with profiling; Add profiling
SkillScore73Maintained
Automatic
◆Coding pack
Last verified 8/20/2026
What it changes
Passed 15 of 21 test cases with the skill, and 8 of 21 without it.
Without skill36%
With skill73%
Checks it passed that the model alone missed
The file is placed in profiler/scripts/ directory.
The script output path targets the profiler/results directory.
The script path is placed under the profiler workspace folder.
and 9 more in the full report
9 fixed7 passed either way5 still failing1 broke
Pass-rate lift
+36 pp
Tokens
-16%
Agent turns
0%
Response time
-44%
Model gemini-3.6-flashMeasured 8/20/2026v116 of 22 cases passed with skill · 21 comparable
Tokens, turns and time describe resource use, not a dollar price.
See it in action
One of 9 test cases the skill fixed. Same model, same prompt, with and without the skill.
1 of 9
Prompt
Can I modify the standard profile script templates to add custom logging banners and colorized terminal formatting?
What was checked, without and with the skill
Checked
Without skill
With skill
The response strictly requires copying script templates without modification or custom enhancement.
Missed
Passed
case-18 · gemini-3.6-flash · 8/20/2026 · answers are capped and redacted
What's inside
The instructions your model reads when the skill loads.
SKILL.md56 lines4 filesincludes scripts
Java Profiling Workflow / Step 1 / Collect data to measure potential issues
Set up the Java profiling detection phase using a trusted preinstalled async-profiler v4.x, problem-driven interactive profiling scripts, and comprehensive data collection for CPU hotspots, memory leaks, lock contention, GC issues, and I/O bottlenecks. Uses JEP 518 (Cooperative Sampling) and JEP 520 (Method Timing) for reduced overhead.
What is covered in this Skill?
Run application with profiling JVM flags (run-java-process-for-profiling.sh)
Automated OS/architecture detection and trusted preinstalled async-profiler validation
CPU, memory, lock, GC, I/O profiling modes
Flamegraph and JFR output with timestamped results
Scope: Use the exact bash script templates without modification or interpretation.
Constraints
Copy bash scripts exactly from templates. Ensure JVM flags are applied for profiling compatibility. Verify Java processes are running before attaching profiler.
CRITICAL: Copy the bash script templates exactly — do not modify, interpret, or enhance
SUPPLY CHAIN: Do not download profiler binaries at runtime; require ASYNC_PROFILER_HOME or profiler/current to point to a trusted, preinstalled async-profiler distribution
EXECUTABLE: Make scripts executable with chmod +x
BEFORE APPLYING: Read the reference for exact script templates and setup instructions
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
Improve the code with profiling
Apply Profiling
Refactor the code with profiling
Add profiling support
Collect JFR or async-profiler data for Java performance
Workflow
Read profiling setup reference
Read references/161-java-profiling-detect.md and use script templates exactly as provided.
Use when you need to verify Java performance optimizations by comparing profiling results before and after refactoring — including baseline validation, post-refactoring report generation, quantitative before/after metrics comparison, side-by-side flamegraph analysis, regression detection, or creating profiling-comparison-analysis and profiling-final-results documentation. This should trigger for requests such as Verify performance fix; Verify the performance; Verify the memory; Verify the thread