As a developer, you can also create your own custom events using the JFR API and view and analyze them using MC. Here's an example; let's define a custom event:
class MyEvent extends Event {
@Label("EventMessage")
String message;
}
Now let's modify the AThread class to use events, instead of printing to console:
class AThread implements Runnable {
String name = "default";
private Random numGenerator = new Random();
private ArrayList<Double> list = new ArrayList<Double>(1000000);
AThread(String name) {
this.name = name;
}
public void run() {
MyEvent event;
for (int i = 0; i < 1000000; i++) {
list.add(numGenerator.nextDouble());
event = new MyEvent();
event.message = "Allocated : " + name...