compareDecide whether a candidate JFR recording regressed against a baseline, and attribute the change to a frame or a metric. Use for before/after checks, "is this build slower", bisecting a performance regression, verifying that a fix actually helped, or any question involving two recordings of the same
cpuFind where CPU time goes in a JFR recording, pprof profile or OTLP profile, and attribute it to call paths and threads. Use when triage shows high execution-sample counts, when the user asks "why is the CPU pegged", "what is the hot method", "where is the time going", or asks for a flamegraph or pro
gcAnalyse garbage collection pressure, pause times, heap sizing and allocation hotspots in a JFR recording. Use when triage reports high GC pressure, when the user asks about GC pauses, heap growth, allocation rate, OutOfMemoryError risk, or which code allocates the most.
heap-diffCompare two or more heap dumps taken at different times to prove memory growth rather than infer it — class-level instance and retained-size deltas, newly appeared clusters, and objects that survived when they should not have. Use whenever two .hprof files of the same application are available, or w
jfrpathSyntax reference for the query languages behind jfr_query, hdump_query, pprof_query and otlp_query — JfrPath, HdumpPath and SamplesPath. Consult before composing any non-trivial query, and whenever a query returns a parse error, so the syntax is right on the first attempt instead of after three fail
latencyInvestigate response-time problems that are not CPU-bound — lock contention, thread parking, executor queue saturation, blocking I/O, and per-endpoint latency attribution. Use when the user reports slow requests, p99 spikes, timeouts, deadlock suspicion, or when triage shows threads blocked rather t
memory-leakHunt memory leaks and wasted heap in a Java heap dump (HPROF) — retained sizes, dominator tree, GC root paths, known leak patterns, duplicate strings, collection waste, and correlating retained objects back to their JFR allocation sites. Use for OutOfMemoryError, heap that never comes back after GC,
reportThe output format and evidence discipline for any performance finding produced with the Jafar tools. Use whenever writing up an analysis, summarising an investigation, answering "what did you find", or handing conclusions to another person or agent.
triageFirst step for any unfamiliar JFR recording, pprof profile, OTLP profile, or heap dump. Establishes what the artifact contains, what is anomalous, and which specialised playbook to run next. Use when the user says "analyse this recording", "what is wrong with this JVM", "why is this slow", or hands