Files
jfr/docs/output/03-hot-method-samples.txt
T
asmhatre c7eccd1db5 Add jfr-demo: JFR + Mission Control profiling of a live Spring Boot app
Custom OrderProcessed event, CPU/allocation/lock workloads, a diagnostic
endpoint over the JVM's live FlightRecorder state, a JUnit test using the
jdk.jfr.Recording API, and nine captured recordings (flagship, mid-flight
snapshot, isolated vs concurrent threshold comparisons, and a real
dump+stop duplication bug) with their docs/output/*.txt transcripts.
2026-10-01 04:37:26 +00:00

40 lines
2.2 KiB
Plaintext

Top stack frames from jdk.ExecutionSample, live-demo.jfr, during six concurrent
GET /api/cpu/fibonacci?n=38 calls, aggregated by the top (leaf) frame only.
$ jfr print --events jdk.ExecutionSample --stack-depth 1 recordings/live-demo.jfr \
| grep -A1 stackTrace | grep -v 'stackTrace\|^--' | sed 's/^\s*//' | sort | uniq -c | sort -rn
62 com.ankurm.jfr.service.WorkloadService.fibonacci(int) line: 40
13 com.ankurm.jfr.service.WorkloadService.churnAllocations(int) line: 56
9 com.ankurm.jfr.service.WorkloadService.churnAllocations(int) line: 52
2 jdk.internal.util.DecimalDigits.uncheckedGetCharsLatin1(int, int, byte[]) line: 168
1 org.apache.tomcat.util.net.NioEndpoint$Poller.run() line: 941
1 org.apache.tomcat.util.http.MimeHeaders.addValue(byte[], int, int) line: 327
1 org.apache.catalina.mapper.Mapper.compareIgnoreCase(CharChunk, int, int, String) line: 1401
1 org.apache.catalina.core.ApplicationFilterFactory.createFilterChain(ServletRequest, Wrapper, Servlet) line: 75
1 jdk.internal.util.DecimalDigits.stringSize(int) line: 101
1 jdk.internal.misc.Unsafe.allocateUninitializedArray(Class, int) line: 1396
1 java.util.concurrent.locks.LockSupport.unpark(Thread) line: 181
1 java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.signalAll() line: 1590
1 java.util.Arrays.copyOf(Object[], int) line: 3478
1 java.nio.Buffer.position(int) line: 325
1 java.lang.invoke.DirectMethodHandle.allocateInstance(Object) line: 500
total jdk.ExecutionSample events in recording: 98
fibonacci() share of samples: 62 / 98 = 63.3%
$ jfr print --events jdk.ExecutionSample recordings/live-demo.jfr | head -13
jdk.ExecutionSample {
startTime = 09:59:03.699 (2026-10-01)
sampledThread = "http-nio-8080-exec-1" (javaThreadId = 30)
state = "STATE_RUNNABLE"
stackTrace = [
com.ankurm.jfr.service.WorkloadService.fibonacci(int) line: 40
com.ankurm.jfr.service.WorkloadService.fibonacci(int) line: 40
com.ankurm.jfr.service.WorkloadService.fibonacci(int) line: 40
com.ankurm.jfr.service.WorkloadService.fibonacci(int) line: 40
com.ankurm.jfr.service.WorkloadService.fibonacci(int) line: 40
...
]
}