# 161 Java Profiling Detect

> 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…

- **Type:** Skill
- **Install:** `agentstack add skill-jabrena-cursor-rules-java-161-java-profiling-detect`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [jabrena](https://agentstack.voostack.com/s/jabrena)
- **Installs:** 0
- **Category:** [Developer Tools](https://agentstack.voostack.com/c/developer-tools)
- **Latest version:** 0.1.0
- **License:** Apache-2.0
- **Upstream author:** [jabrena](https://github.com/jabrena)
- **Source:** https://github.com/jabrena/cursor-rules-java/tree/main/skills/161-java-profiling-detect
- **Website:** https://jabrena.github.io/cursor-rules-java/

## Install

```sh
agentstack add skill-jabrena-cursor-rules-java-161-java-profiling-detect
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# 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)
- Interactive profiling script (profiler/scripts/profile-java-process.sh) — copy exact template
- Directory structure: profiler/scripts/, profiler/results/, profiler/current/
- 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
- **SETUP**: Create profiler directory structure: profiler/scripts, profiler/results
- **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

## Workflow

1. **Read profiling setup reference**

Read `references/161-java-profiling-detect.md` and use script templates exactly as provided.

2. **Create profiler workspace and scripts**

Create `profiler/scripts` and `profiler/results`, copy setup/profile scripts verbatim, and make scripts executable.

3. **Run application with profiling compatibility**

Start Java process with required profiling JVM flags and verify target process availability for profiler attachment.

4. **Collect profiling artifacts**

Capture CPU/memory/lock/GC/I/O data and produce timestamped flamegraph and JFR outputs for analysis.

## Reference

For detailed guidance, examples, and constraints, see [references/161-java-profiling-detect.md](references/161-java-profiling-detect.md).

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [jabrena](https://github.com/jabrena)
- **Source:** [jabrena/cursor-rules-java](https://github.com/jabrena/cursor-rules-java)
- **License:** Apache-2.0
- **Homepage:** https://jabrena.github.io/cursor-rules-java/

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-jabrena-cursor-rules-java-161-java-profiling-detect
- Seller: https://agentstack.voostack.com/s/jabrena
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
