Skills DirectorySkills Directory
SkillsLearnSecurityCategoriesDocsCommunityBlog
Sign InSubmit Skill
Skills Directory

Security-tested agent skills for Claude, coding agents, and AI workflows.

Directory

  • Browse Skills
  • All Skills A–Z
  • Claude Skills
  • Claude Code Skills
  • Agent Skills
  • Categories
  • Submit a Skill

Learn

  • Learn Hub
  • Install Claude Skills
  • Write SKILL.md
  • Skills vs MCP
  • Directories Compared

Security

  • Security
  • Methodology
  • Secure Claude Skills
  • Security Badges

Company

  • About
  • Community
  • Blog
  • API Docs
  • Advertise

2026 Skills Directory. All rights reserved.

Back to skills

Java Performance

ASecurity

Evidence-first triage and routing for ambiguous Java/JVM performance symptoms: defining the affected population and work, separating latency/throughput/resource/error dimensions, checking measurement and recent-change validity, preserving live-incident evidence, mapping competing hypotheses to discriminating signals, and handing each bounded question to its owning skill. Use for “it is slow,” regressions, saturation, memory/RSS growth, startup, uneven instances, or post-JDK/deploy changes whe...

2 stars
0 votes
0 copies
0 views
Added 9/19/2026
developmentrustgojavasqltestingapidatabaseperformancedocumentation

Works with

cliapi

Security Analysis

A100/100

Scanned 9/19/2026

Install to Claude Code

$npx -y skills add robsonkades/agent-skills --skill java-performance --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Java Performance?

Add the live security badge to your README — it updates automatically with every re-scan.

Security grade badge for Java Performance
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/robsonkades-java-performance/badge)](https://www.skillsdirectory.com/skills/robsonkades-java-performance)

More formats (shields.io, HTML) on the badges page.

Download Zip
Files
SKILL.md
---
name: java-performance
description: >
  Evidence-first triage and routing for ambiguous Java/JVM performance symptoms: defining the
  affected population and work, separating latency/throughput/resource/error dimensions,
  checking measurement and recent-change validity, preserving live-incident evidence, mapping
  competing hypotheses to discriminating signals, and handing each bounded question to its
  owning skill. Use for “it is slow,” regressions, saturation, memory/RSS growth, startup,
  uneven instances, or post-JDK/deploy changes when the cause is unknown. This is a router, not
  a substitute for performance-methodology or specialist JVM/OS/database/distributed skills.
---

# Java Performance

## Purpose

Turn a vague symptom into a bounded investigation with competing hypotheses, a minimal evidence
set, and the correct specialist owners. Do not route directly from one symptom to one cause:
production regressions frequently combine load mix, queues, GC, compilation, I/O, dependencies,
resource limits, observability, and deployment lifecycle.

This skill should leave context once the investigation protocol and specialist set are clear.
`performance-methodology` owns the causal workflow from hypothesis through validation.

## Triage contract

Before choosing a tool or owner, record:

```text
user/business symptom and SLO impact:
metric definition, unit, aggregation, sample count, source, and clock:
affected percentiles/throughput/errors/cost and time interval:
offered load, completed work, operation/data/tenant mix, concurrency:
affected versions/instances/zones/hosts/clients and healthy controls:
startup/warm/steady/shutdown or incident lifecycle phase:
recent code/config/JDK/dependency/data/infrastructure/deploy changes:
resource demand/limits/queues and downstream health:
recovery deadline and evidence-preservation budget:
```

Inspect the request, repository, incident timeline and available artifacts before asking the
user to repeat context. Start with available facts and mark unknowns; do not require every
field before useful triage. Ask only when the unresolved answer changes routing, evidence
collection or recovery; continue independent work within the existing authority.
For missing evidence, state which hypothesis remains unresolved and the smallest artifact or
focused question that would distinguish it. A screenshot or unavailable process can support
a collection plan, not a confirmed mechanism or an invented baseline.

Record the target JDK vendor/build, JVM implementation, collector, OS/container, agents and
profiler versions separately from compiler `--release`. The linked tool documentation uses
JDK 25/HotSpot; it is not a requirement to upgrade. Check the target's command help, event
metadata and effective settings before transferring commands, flags or event assumptions.
Preview/incubator APIs, attach access and platform-specific profilers need explicit target support.

If the process is degrading and remediation is imminent, invoke `incident-evidence-capture`
before an ordinary investigation. Bounded capture must fit the recovery deadline: do not delay
already authorized mitigation to complete this checklist or restart merely to enable a tool.
If the measurement cannot be trusted, route first to
`latency-statistics`, `coordinated-omission`, `load-testing`, or
`performance-methodology`.

## First classification

Use four independent axes rather than a single label:

| Axis       | Questions                                                                              |
| ---------- | -------------------------------------------------------------------------------------- |
| Outcome    | latency distribution, throughput/goodput, errors/timeouts, startup/readiness, cost     |
| Demand     | offered versus accepted/completed work, mix, burst, fanout, payload/data size          |
| Resource   | CPU user/system/throttled, heap/native/RSS, allocation/GC, disk/network, pools         |
| Scope/time | one/fleet, version/host/zone, transient/permanent/periodic, load/lifecycle correlation |

“CPU low” is not “idle,” “throughput unchanged” is not equal work, and exit 137 is not by itself
proof of OOM. Normalize resource by completed work where meaningful and preserve failures/
timeouts/cancellations.

## Evidence selection

Choose the cheapest **safe** evidence that separates the leading hypotheses in this system.
There is no universal bundle such as “GC log plus two-minute `settings=profile` JFR.” Existing
continuous logs/JFR/profiles can be cheapest; a new profile/JFR can be inappropriate under disk,
CPU, thread-count, privacy, or recovery pressure.

Useful parallel views, when already available or safely collectable:

- service-level latency/throughput/errors and workload mix;
- per-instance/container/cgroup CPU, memory, pressure, I/O, network, lifecycle;
- GC/JFR/runtime and thread/task evidence;
- dependency/database/queue/pool metrics and traces;
- code/config/JDK/dependency/deployment diff;
- one affected instance versus a genuinely comparable control.

Every collection has a time, overhead, privilege, survivability, and perturbation budget.
Read-only diagnostics can still pause or trigger GC: inspect the target command's documented
impact, not merely whether it changes application data. Keep files on bounded storage that
survives the planned recovery action; use the evidence-capture owner for command selection.

## Routing map

| Established question/mechanism                      | Primary owner                                                                                |
| --------------------------------------------------- | -------------------------------------------------------------------------------------------- |
| Investigation design, causal experiment, validation | `performance-methodology`                                                                    |
| Metric/percentile/tail validity                     | `latency-statistics`, `tail-latency-analysis`                                                |
| Load model/generator/omission                       | `load-testing`, `load-testing-advanced`, `coordinated-omission`                              |
| Evidence before restart/OOM/remediation             | `incident-evidence-capture`                                                                  |
| Which profiler/event to use                         | `jfr-and-async-profiler`                                                                     |
| JFR configuration/event internals                   | `jfr-advanced`                                                                               |
| Existing flame graph interpretation                 | `flame-graph-analysis`                                                                       |
| Host/kernel gap in JVM evidence                     | `linux-for-jvm`, then `ebpf-for-jvm`                                                         |
| GC pause/phase attribution; tuning if warranted     | `gc-log-analysis`, then `jvm-gc-tuning` when warranted; collector internals as needed        |
| Allocation source/lifetime/retention                | `allocation-profiling`, `heap-dump-analysis`, `java-reference-types-and-leaks`               |
| Heap/non-heap/native/RSS region                     | `jvm-memory-regions`, `metaspace-internals`, `off-heap-memory`                               |
| Safepoint/TTSP/felt pause mismatch                  | `safepoints`, `pause-attribution`                                                            |
| JIT warm-up/compilation/inlining/deopt/code cache   | `jit-compilation` and the matching specialist                                                |
| Startup/readiness/checkpoint/AOT                    | `startup-cds-crac-leyden`, `graalvm-native-image` where relevant                             |
| Lock/deadlock/liveness/thread state                 | `concurrency-diagnostics`                                                                    |
| Pools/virtual threads/carriers/pinning              | `thread-sizing-and-virtual-threads`, `virtual-thread-migration`, `virtual-threads-internals` |
| CPU scaling/cache/NUMA/affinity                     | `cpu-cache-and-numa`, `numa-and-cpu-affinity`, `false-sharing-and-contended` after evidence  |
| Blocking/nonblocking/native I/O path                | `blocking-and-nonblocking-io`, `io-uring-and-zero-copy` after evidence                       |
| Database query/engine/index/ORM/pool/bulk/migration | `database-performance`, then the matching specialist                                         |
| Cache topology/effectiveness                        | `caching-strategies`, distributed cache skills as needed                                     |
| Serialization cost                                  | `serialization-performance`                                                                  |
| Instrumentation/tracing cost                        | `opentelemetry-performance`                                                                  |
| Capacity/queues/concurrency bounds                  | `littles-law-and-queueing`, `queueing-models`, `capacity-planning`                           |
| JDK/runtime migration discontinuity                 | `jdk-upgrade-impact`, `jvm-performance-review`                                               |
| Microbenchmark or CI gate                           | `jmh-microbenchmarks`, `jmh-advanced`, `performance-regression-ci`                           |

See [Triage map](references/triage-map.md) for ambiguous symptom forks and
[Specialist map](references/depth-ladder.md) for the knowledge graph. The specialist map is
not a mandatory shallow-to-deep ladder; load the minimum skills that own the actual questions.

## Core rules

- Classify the measured outcome and work denominator before optimizing.
- Maintain multiple hypotheses until one is discriminated; correlated signals are not
  automatically causal.
- A deploy changes more than code: process age/JIT, caches, connections, traffic shifting,
  replicas, image/JDK/dependencies/config, data/schema, sidecars, and host placement.
- High latency with low average CPU can be downstream wait, a queue/pool, throttling, pauses,
  load-balancer skew, synchronization, network loss, client timing, or idle low demand. Measure.
- Worse scaling with more threads can be locks, shared resources, coherence/NUMA, GC,
  oversubscription, quotas, I/O, downstream saturation, or workload change—not automatically
  hardware cache effects.
- Pause frequency changes do not prove allocation changed; workload, heap occupancy, sizing,
  collector policy, humongous objects, promotion, concurrent-cycle progress, and explicit GC
  also matter.
- A restart that “fixes” performance resets much more than JIT/code cache: heap/live state,
  pools/connections, caches, leaks, queues, circuit state, load placement, native resources, and
  agents.
- A healthy CPU profile does not rule out elapsed wait; a healthy GC log does not rule out
  safepoint, OS pause, dependency, or measurement error.
- Never recommend a JVM flag, pool size, cache, virtual threads, SQL index, or architecture
  change from symptom shape alone.

## Severity and decision path

```text
live user impact and remediation imminent?
  -> preserve bounded evidence under incident authority

measurement invalid/ambiguous?
  -> repair definition/load/timing/omission before causal analysis

affected cohort and timeline known?
  -> compare affected versus compatible controls and recent-change epochs

leading mechanisms identified?
  -> choose the next safe discriminator that can change the decision

bounded specialist question established?
  -> hand off evidence and unresolved alternatives; define the next decision/check

evidence shows existing behavior meets the goal?
  -> record no change and what would warrant reopening
```

## Troubleshooting triage failures

| Failure                | Symptom                                          | Correction                                                                       |
| ---------------------- | ------------------------------------------------ | -------------------------------------------------------------------------------- |
| Premature routing      | team tunes GC/threads from one dashboard         | restore alternative hypotheses and separating signals                            |
| Aggregate hides cohort | fleet mean normal, some users/pods fail          | segment by version/instance/operation/failure domain with cardinality discipline |
| Denominator drift      | CPU/samples rise with traffic or retries         | normalize by accepted/completed work and retain errors/timeouts                  |
| Lifecycle confound     | only new pods slow                               | compare uptime/JIT/cache/readiness/traffic ramp, not steady-state fleet          |
| Evidence mismatch      | metrics/JFR/profile use different windows/clocks | align markers and state uncertainty; recollect if decision-critical              |
| Tool perturbation      | capture worsens tail or disappears after drain   | measure overhead; preserve pre-action data; use safer/sparser instrument         |
| Restart folklore       | restart helps, code cache blamed                 | enumerate every reset state and design a discriminating recurrence test          |

## Handoff contract

Give the specialist:

```text
precise symptom and affected cohort/window
metric and workload definitions with raw/normalized values
leading hypothesis and alternatives
evidence already collected, provenance, loss, and perturbation
why this evidence routes to that owner
recovery/experiment constraints
success, guardrail, and rollback criteria
```

Do not hand off only “high CPU” or a screenshot.
The owner can investigate an established question before its mechanism is confirmed. Carry
forward prior checks and their limits so the next skill does not repeat intake or treat an
untested alternative as refuted. Controlled evidence of an effect can precede a mechanism
explanation; `performance-methodology` owns that distinction and further validation.

## Definition of done

- [ ] Symptom, scope, time, work denominator, lifecycle, and recent changes are explicit.
- [ ] Measurement validity and live-incident evidence risk were checked first.
- [ ] Plausible alternatives that could change the decision and their discriminators are recorded.
- [ ] Relevant affected/control views are aligned, or missing comparisons and their limits are stated.
- [ ] Specialist owners are selected by established questions, not presumed causes.
- [ ] Proposed optimization is conditional on evidence and validation; authorized incident recovery is not delayed for mechanism proof.
- [ ] Handoff includes evidence limitations and next checks; interventions include applicable success/guardrail/rollback criteria.

For this router, completion means a justified owner and bounded next discriminator, or an
evidence-supported no-change decision with revisit conditions. It does not imply a resolved
performance incident. Unknowns may remain if their impact and next check are explicit.
Do not keep loading the specialist catalog once one owner can advance the established question.

## References

- [Triage map](references/triage-map.md) — read for competing explanations of an ambiguous symptom.
- [Specialist map](references/depth-ladder.md) — read when the owning question spans domains.
- [Worked example: tail regression after deploy](references/latency-regression.md) — read when
  separating logging, allocation, GC and rollout hypotheses after a deployment.
- [JDK 25 diagnostic command impact](https://docs.oracle.com/en/java/javase/25/docs/specs/man/jcmd.html)
  — consult when budgeting collection, then check help on the target JVM.
- [JDK 25 troubleshooting guide](https://docs.oracle.com/en/java/javase/25/troubleshoot/)
- [JDK Mission Control documentation](https://docs.oracle.com/en/java/java-components/jdk-mission-control/)

Attribution

robsonkadesrobsonkades
View sourceMore from robsonkades →
SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments (0)

No comments yet. Be the first to comment!

SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Related Skills

Browser Extension Developer

Use this skill when developing or maintaining browser extension code in the `browser/` directory, including Chrome/Firefox/Edge compatibility, content scripts, background scripts, or i18n updates.

281612 votes

Seo Optimizer

SEO optimization with keyword analysis, readability assessment, technical validation, content quality. Use for search rankings, blog posts, content audits, or encountering keyword density, readability scores, meta tags, schema markup errors.

2132 votes

Google Official Seo Guide

Official Google SEO guide covering search optimization, best practices, Search Console, crawling, indexing, and improving website search visibility based on official Google documentation

1862 votes

Tanstack Start

Build a full-stack TanStack Start app on Cloudflare Workers from scratch — SSR, file-based routing, server functions, D1+Drizzle, better-auth, Tailwind v4+shadcn/ui. Use whenever the user mentions TanStack Start, asks to scaffold a full-stack Cloudflare app with SSR, wants an SSR dashboard, or asks for a React 19 + Cloudflare Workers app with file-based routing and server functions — even if they don't name TanStack Start specifically. No template repo — Claude generates every file fresh per ...

9881 votes

Pentest

PTES-aligned adversarial security audit for backend, frontend, and mobile applications. Produces a CVSS-scored Hacker Report with verified PoCs and phased remediation.

5491 votes
View all in development →