Bug#963579: ITP: perfmark-java -- High Performance Tracing Library for Java
Owner: Olek Wojnar <email@example.com>
* Package name : perfmark-java
Version : 0.19.0
Upstream Author : Google LLC
* URL : https://github.com/perfmark/perfmark
* License : Apache
Programming Lang: Java
Description : High Performance Tracing Library for Java
Low-overhead, manually-instrumented, tracing library for Java. Users can add
the tracing function calls to their code to see how long each part takes.
* Very Low Overhead: When enabled, tracing a function call adds about 70ns.
Tracing is done in a lock-free, wait-free, thread local buffer, which
avoids interfering with your latency-sensitive code.
* Dynamically Enabled: PerfMark can be enabled or disabled at runtime. When
disabled, PerfMark has zero overhead, taking advantage of the JIT compiler
to remove the tracing.
* Inter-thread Communication: Existing profilers have difficulty expressing
which thread wakes up and executes work on another thread. PerfMark allows
users to express this relationship explicitly, making for a clear picture
of how code flows.
* Small Library Size: The PerfMark tracing API is only 5 KB in size, and has
minimal dependencies making it easy to include in other projects. If no
backend for recording the trace is present, the library safely disables
* Multiple Java Versions: The PerfMark API supports Java 6, making it easy to
include on older or constrained environments. Additionally, PerfMark
includes optimized backends for Java 6, Java 7, and Java 9. Each of these
backends is automatically loaded at runtime (if possible) and uses advanced
JVM features for maximum speed.
* Chrome Trace Viewer Integration: PerfMark can export to the Chrome Trace
Event Format, making it easy to view in your Web Browser.