async-profiler currently supports the following output formats:
-
collapsed- This is a collection of call stacks, where each line is a semicolon separated list of frames followed by a counter. This is used by the FlameGraph script to generate the FlameGraph visualization of the profile data.FileConverter.main;FileConverter.convertFile;FileConverter.saveResult 21 FileConverter.main;FileConverter.convertFile;FileConverter.saveResult;java/io/DataOutputStream.writeInt 1 FileConverter.main;FileConverter.convertFile;FileConverter.saveResult;java/io/DataOutputStream.writeInt;java/io/ByteArrayOutputStream.write 5 FileConverter.main;FileConverter.convertFile;FileConverter.saveResult;java/io/DataOutputStream.writeUTF;java/io/DataOutputStream.writeUTF 12 FileConverter.main;FileConverter.convertFile;FileConverter.saveResult;java/io/DataOutputStream.writeUTF;java/io/DataOutputStream.writeUTF;java/lang/String.length 3 FileConverter.main;FileConverter.convertFile;FileConverter.saveResult;java/io/DataOutputStream.writeUTF;java/io/DataOutputStream.writeUTF;java/io/DataOutputStream.write 6 start_thread;thread_native_entry;Thread::call_run;VMThread::run;VMThread::inner_execute;VMThread::evaluate_operation;VM_Operation::evaluate;VM_GenCollectForAllocation::doit;GenCollectedHeap::satisfy_failed_allocation;GenCollectedHeap::do_collection;GenCollectedHeap::collect_generation;DefNewGeneration::collect;DefNewGeneration::FastEvacuateFollowersClosure::do_void 12 start_thread;thread_native_entry;Thread::call_run;VMThread::run;VMThread::inner_execute;VMThread::evaluate_operation;VM_Operation::evaluate;VM_GenCollectForAllocation::doit;GenCollectedHeap::satisfy_failed_allocation;GenCollectedHeap::do_collection;GenCollectedHeap::collect_generation;DefNewGeneration::collect;DefNewGeneration::FastEvacuateFollowersClosure::do_void;void ContiguousSpace::oop_since_save_marks_iterate<DefNewScanClosure> 1 -
flamegraph- FlameGraph is a hierarchical representation of call traces of the profiled software in a color coded format. Read more on the interpretation of FlameGraphs.
-
tree- Profile output generated in HTML format showing a tree view of resource usage beginning with the call stack with the highest resource usage and then showing other call stacks in descending order of resource usage. Expanding a parent frame follows the same hierarchical representation within that frame.
-
text- If no output format is specified with-oand filename has no extension provided, profiled output is generated in text format.--- Execution profile --- Total samples : 733 --- 8208 bytes (19.58%), 1 sample [ 0] byte[] [ 1] java.util.jar.Manifest$FastInputStream.<init> [ 2] java.util.jar.Manifest$FastInputStream.<init> [ 3] java.util.jar.Manifest.read [ 4] java.util.jar.Manifest.<init> [ 5] java.util.jar.Manifest.<init> [ 6] java.util.jar.JarFile.getManifestFromReference [ 7] java.util.jar.JarFile.getManifest [ 8] jdk.internal.loader.URLClassPath$JarLoader$2.getManifest [ 9] jdk.internal.loader.BuiltinClassLoader.defineClass [10] jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull [11] jdk.internal.loader.BuiltinClassLoader.loadClassOrNull [12] jdk.internal.loader.BuiltinClassLoader.loadClass [13] jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass [14] java.lang.ClassLoader.loadClass [15] java.lang.Class.forName0 [16] java.lang.Class.forName [17] sun.launcher.LauncherHelper.loadMainClass [18] sun.launcher.LauncherHelper.checkAndLoadMain -
jfr- profile format used by the JDK Flight Recorder. Thejfrformat collects data about the JVM as well as the Java application running on it. async-profiler can generate output injfrformat compatible with tools capable of viewing and analyzingjfrfiles. JDK Mission Control (JMC) and Intellij IDEA are some of many options to visualizejfrfiles. More details here. -
otlp- OpenTelemetry protocol format for profiling data. Experimental feature: backward-incompatible changes may happen in future releases of async-profiler.