final class org.graalvm.polybench.JFRSupport
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: org.graalvm.polybench.JFRSupport
  super_class: java.lang.Object
{
  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.polybench.JFRSupport this
         0: .line 40
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 41
            return
        end local 0 // org.graalvm.polybench.JFRSupport this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/graalvm/polybench/JFRSupport;

  static boolean isAvailable();
    descriptor: ()Z
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 45
            invokestatic jdk.jfr.FlightRecorder.isAvailable:()Z
         1: ireturn
         2: .line 46
      StackMap locals:
      StackMap stack: java.lang.LinkageError
            pop
         3: .line 48
            iconst_0
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.LinkageError

  static java.lang.Object startRecording(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/Object;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // java.lang.String enabledEvent
         0: .line 53
            new jdk.jfr.Recording
            dup
            invokespecial jdk.jfr.Recording.<init>:()V
            astore 1 /* recording */
        start local 1 // jdk.jfr.Recording recording
         1: .line 54
            aload 1 /* recording */
            aload 0 /* enabledEvent */
            invokevirtual jdk.jfr.Recording.enable:(Ljava/lang/String;)Ljdk/jfr/EventSettings;
            pop
         2: .line 55
            aload 1 /* recording */
            iconst_0
            invokevirtual jdk.jfr.Recording.setDumpOnExit:(Z)V
         3: .line 56
            aload 1 /* recording */
            invokevirtual jdk.jfr.Recording.start:()V
         4: .line 57
            aload 1 /* recording */
            areturn
        end local 1 // jdk.jfr.Recording recording
        end local 0 // java.lang.String enabledEvent
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    5     0  enabledEvent  Ljava/lang/String;
            1    5     1     recording  Ljdk/jfr/Recording;
    MethodParameters:
              Name  Flags
      enabledEvent  

  static java.lang.Object snapshotRecording(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.Object recording
         0: .line 61
            aload 0 /* recording */
            checkcast jdk.jfr.Recording
            iconst_1
            invokevirtual jdk.jfr.Recording.copy:(Z)Ljdk/jfr/Recording;
            areturn
        end local 0 // java.lang.Object recording
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0  recording  Ljava/lang/Object;
    MethodParameters:
           Name  Flags
      recording  

  static void disposeRecording(java.lang.Object, boolean);
    descriptor: (Ljava/lang/Object;Z)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=3, args_size=2
        start local 0 // java.lang.Object recording
        start local 1 // boolean stop
         0: .line 65
            aload 0 /* recording */
            ifnull 5
         1: .line 66
            aload 0 /* recording */
            checkcast jdk.jfr.Recording
            astore 2 /* r */
        start local 2 // jdk.jfr.Recording r
         2: .line 67
            iload 1 /* stop */
            ifeq 4
         3: .line 68
            aload 2 /* r */
            invokevirtual jdk.jfr.Recording.stop:()Z
            pop
         4: .line 70
      StackMap locals: jdk.jfr.Recording
      StackMap stack:
            aload 2 /* r */
            invokevirtual jdk.jfr.Recording.close:()V
        end local 2 // jdk.jfr.Recording r
         5: .line 72
      StackMap locals:
      StackMap stack:
            return
        end local 1 // boolean stop
        end local 0 // java.lang.Object recording
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    6     0  recording  Ljava/lang/Object;
            0    6     1       stop  Z
            2    5     2          r  Ljdk/jfr/Recording;
    MethodParameters:
           Name  Flags
      recording  
      stop       

  static long computeCumulativeTime(java.lang.Object, java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/Object;Ljava/lang/String;Ljava/lang/String;)J
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=7, args_size=3
        start local 0 // java.lang.Object recording
        start local 1 // java.lang.String eventName
        start local 2 // java.lang.String fieldName
         0: .line 75
            ldc "recording"
            ldc ".jfr"
            iconst_0
            anewarray java.nio.file.attribute.FileAttribute
            invokestatic java.nio.file.Files.createTempFile:(Ljava/lang/String;Ljava/lang/String;[Ljava/nio/file/attribute/FileAttribute;)Ljava/nio/file/Path;
            astore 3 /* file */
        start local 3 // java.nio.file.Path file
         1: .line 78
            aload 0 /* recording */
            checkcast jdk.jfr.Recording
            aload 3 /* file */
            invokevirtual jdk.jfr.Recording.dump:(Ljava/nio/file/Path;)V
         2: .line 80
            aload 3 /* file */
            aload 1 /* eventName */
            aload 2 /* fieldName */
            invokestatic org.graalvm.polybench.JFRSupport.processRecordings:(Ljava/nio/file/Path;Ljava/lang/String;Ljava/lang/String;)J
            lstore 5
         3: .line 82
            aload 3 /* file */
            invokestatic java.nio.file.Files.delete:(Ljava/nio/file/Path;)V
         4: .line 80
            lload 5
            lreturn
         5: .line 81
      StackMap locals: java.lang.Object java.lang.String java.lang.String java.nio.file.Path
      StackMap stack: java.lang.Throwable
            astore 4
         6: .line 82
            aload 3 /* file */
            invokestatic java.nio.file.Files.delete:(Ljava/nio/file/Path;)V
         7: .line 83
            aload 4
            athrow
        end local 3 // java.nio.file.Path file
        end local 2 // java.lang.String fieldName
        end local 1 // java.lang.String eventName
        end local 0 // java.lang.Object recording
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    8     0  recording  Ljava/lang/Object;
            0    8     1  eventName  Ljava/lang/String;
            0    8     2  fieldName  Ljava/lang/String;
            1    8     3       file  Ljava/nio/file/Path;
      Exception table:
        from    to  target  type
           1     3       5  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
           Name  Flags
      recording  
      eventName  
      fieldName  

  private static long processRecordings(java.nio.file.Path, java.lang.String, java.lang.String);
    descriptor: (Ljava/nio/file/Path;Ljava/lang/String;Ljava/lang/String;)J
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // java.nio.file.Path jfrFile
        start local 1 // java.lang.String eventName
        start local 2 // java.lang.String fieldName
         0: .line 87
            aload 2 /* fieldName */
            ifnonnull 1
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  org/graalvm/polybench/JFRSupport.lambda$0(Ljdk/jfr/consumer/RecordedEvent;)Ljava/time/Duration; (6)
                  (Ljdk/jfr/consumer/RecordedEvent;)Ljava/time/Duration;
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 2 /* fieldName */
            invokedynamic apply(Ljava/lang/String;)Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  org/graalvm/polybench/JFRSupport.lambda$1(Ljava/lang/String;Ljdk/jfr/consumer/RecordedEvent;)Ljava/time/Duration; (6)
                  (Ljdk/jfr/consumer/RecordedEvent;)Ljava/time/Duration;
      StackMap locals:
      StackMap stack: java.util.function.Function
         2: astore 3 /* mapper */
        start local 3 // java.util.function.Function mapper
         3: .line 88
            aload 0 /* jfrFile */
            invokestatic jdk.jfr.consumer.RecordingFile.readAllEvents:(Ljava/nio/file/Path;)Ljava/util/List;
            invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
         4: .line 89
            aload 1 /* eventName */
            invokedynamic test(Ljava/lang/String;)Ljava/util/function/Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  org/graalvm/polybench/JFRSupport.lambda$2(Ljava/lang/String;Ljdk/jfr/consumer/RecordedEvent;)Z (6)
                  (Ljdk/jfr/consumer/RecordedEvent;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
         5: .line 92
            aload 3 /* mapper */
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
         6: .line 93
            lconst_0
            invokestatic java.time.Duration.ofNanos:(J)Ljava/time/Duration;
            invokedynamic apply()Ljava/util/function/BinaryOperator;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
                  org/graalvm/polybench/JFRSupport.lambda$3(Ljava/time/Duration;Ljava/time/Duration;)Ljava/time/Duration; (6)
                  (Ljava/time/Duration;Ljava/time/Duration;)Ljava/time/Duration;
            invokestatic java.util.stream.Collectors.reducing:(Ljava/lang/Object;Ljava/util/function/BinaryOperator;)Ljava/util/stream/Collector;
            invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
            checkcast java.time.Duration
         7: .line 94
            invokevirtual java.time.Duration.toMillis:()J
         8: .line 88
            lreturn
        end local 3 // java.util.function.Function mapper
        end local 2 // java.lang.String fieldName
        end local 1 // java.lang.String eventName
        end local 0 // java.nio.file.Path jfrFile
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    9     0    jfrFile  Ljava/nio/file/Path;
            0    9     1  eventName  Ljava/lang/String;
            0    9     2  fieldName  Ljava/lang/String;
            3    9     3     mapper  Ljava/util/function/Function<Ljdk/jfr/consumer/RecordedEvent;Ljava/time/Duration;>;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
           Name  Flags
      jfrFile    
      eventName  
      fieldName  

  private static java.time.Duration lambda$0(jdk.jfr.consumer.RecordedEvent);
    descriptor: (Ljdk/jfr/consumer/RecordedEvent;)Ljava/time/Duration;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.jfr.consumer.RecordedEvent event
         0: .line 87
            aload 0 /* event */
            invokevirtual jdk.jfr.consumer.RecordedEvent.getDuration:()Ljava/time/Duration;
            areturn
        end local 0 // jdk.jfr.consumer.RecordedEvent event
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0  event  Ljdk/jfr/consumer/RecordedEvent;

  private static java.time.Duration lambda$1(java.lang.String, jdk.jfr.consumer.RecordedEvent);
    descriptor: (Ljava/lang/String;Ljdk/jfr/consumer/RecordedEvent;)Ljava/time/Duration;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // jdk.jfr.consumer.RecordedEvent event
         0: .line 87
            aload 1 /* event */
            aload 0
            invokevirtual jdk.jfr.consumer.RecordedEvent.getLong:(Ljava/lang/String;)J
            invokestatic java.time.Duration.ofMillis:(J)Ljava/time/Duration;
            areturn
        end local 1 // jdk.jfr.consumer.RecordedEvent event
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     1  event  Ljdk/jfr/consumer/RecordedEvent;

  private static boolean lambda$2(java.lang.String, jdk.jfr.consumer.RecordedEvent);
    descriptor: (Ljava/lang/String;Ljdk/jfr/consumer/RecordedEvent;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // jdk.jfr.consumer.RecordedEvent event
         0: .line 90
            aload 0
            aload 1 /* event */
            invokevirtual jdk.jfr.consumer.RecordedEvent.getEventType:()Ljdk/jfr/EventType;
            invokevirtual jdk.jfr.EventType.getName:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ireturn
        end local 1 // jdk.jfr.consumer.RecordedEvent event
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     1  event  Ljdk/jfr/consumer/RecordedEvent;

  private static java.time.Duration lambda$3(java.time.Duration, java.time.Duration);
    descriptor: (Ljava/time/Duration;Ljava/time/Duration;)Ljava/time/Duration;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.time.Duration a
        start local 1 // java.time.Duration b
         0: .line 93
            aload 0 /* a */
            aload 1 /* b */
            invokevirtual java.time.Duration.plus:(Ljava/time/Duration;)Ljava/time/Duration;
            areturn
        end local 1 // java.time.Duration b
        end local 0 // java.time.Duration a
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     a  Ljava/time/Duration;
            0    1     1     b  Ljava/time/Duration;
}
SourceFile: "JFRSupport.java"
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles