Module jdk.jfr
Package jdk.jfr

Annotation Interface Enabled


@Target(TYPE) @Retention(RUNTIME) @Inherited public @interface Enabled
Event annotation, determines if an event should be enabled by default.

If an event doesn't have the annotation, then by default the event is enabled.

The following example shows how the Enabled annotation can be used to create a disabled event. A disabled event will at most have the overhead of an allocation, or none if the runtime JIT compiler is able to eliminate it.

@Name("StopWatch")
@Label("Stop Watch")
@Category("Debugging")
@StackTrace(false)
@Enabled(false)
static public class StopWatchEvent extends Event {
}

public void update() {
    StopWatchEvent e = new StopWatchEvent();
    e.begin();
    ...
    e.commit();
}
The event can be enabled programmatically, or on command line when needed, for example:
java -XX:StartFlightRecording:StopWatch#enabled=true ...

Since:
9