Skip to content

Instantly share code, notes, and snippets.

@harbulot
Last active October 24, 2023 12:05
Show Gist options
  • Save harbulot/b9ab0a381556f2115a690cc2e40188cc to your computer and use it in GitHub Desktop.
Save harbulot/b9ab0a381556f2115a690cc2e40188cc to your computer and use it in GitHub Desktop.
Compiled with OpenJDK on Ubuntu 22.04 (javac 17.0.8.1)
https://gist.github.com/amaembo/fd82f368be71f44480c522f8766bfd89
# Compiled without any -g option
public class Benchmark
minor version: 0
major version: 61
flags: ACC_PUBLIC, ACC_SUPER
Constant pool:
#1 = Methodref #2.#3 // java/lang/Object."<init>":()V
#2 = Class #4 // java/lang/Object
#3 = NameAndType #5:#6 // "<init>":()V
#4 = Utf8 java/lang/Object
#5 = Utf8 <init>
#6 = Utf8 ()V
#7 = InvokeDynamic #0:#8 // #0:getAsInt:()Ljava/util/function/IntSupplier;
#8 = NameAndType #9:#10 // getAsInt:()Ljava/util/function/IntSupplier;
#9 = Utf8 getAsInt
#10 = Utf8 ()Ljava/util/function/IntSupplier;
#11 = InvokeDynamic #1:#8 // #1:getAsInt:()Ljava/util/function/IntSupplier;
#12 = InvokeDynamic #2:#8 // #2:getAsInt:()Ljava/util/function/IntSupplier;
#13 = InterfaceMethodref #14.#15 // java/util/function/IntSupplier.getAsInt:()I
#14 = Class #16 // java/util/function/IntSupplier
#15 = NameAndType #9:#17 // getAsInt:()I
#16 = Utf8 java/util/function/IntSupplier
#17 = Utf8 ()I
#18 = Methodref #19.#20 // Benchmark.compute:()I
#19 = Class #21 // Benchmark
#20 = NameAndType #22:#17 // compute:()I
#21 = Utf8 Benchmark
#22 = Utf8 compute
#23 = Methodref #24.#25 // java/lang/System.currentTimeMillis:()J
#24 = Class #26 // java/lang/System
#25 = NameAndType #27:#28 // currentTimeMillis:()J
#26 = Utf8 java/lang/System
#27 = Utf8 currentTimeMillis
#28 = Utf8 ()J
#29 = Fieldref #24.#30 // java/lang/System.out:Ljava/io/PrintStream;
#30 = NameAndType #31:#32 // out:Ljava/io/PrintStream;
#31 = Utf8 out
#32 = Utf8 Ljava/io/PrintStream;
#33 = Methodref #34.#35 // java/io/PrintStream.println:(I)V
#34 = Class #36 // java/io/PrintStream
#35 = NameAndType #37:#38 // println:(I)V
#36 = Utf8 java/io/PrintStream
#37 = Utf8 println
#38 = Utf8 (I)V
#39 = InvokeDynamic #3:#40 // #3:makeConcatWithConstants:(J)Ljava/lang/String;
#40 = NameAndType #41:#42 // makeConcatWithConstants:(J)Ljava/lang/String;
#41 = Utf8 makeConcatWithConstants
#42 = Utf8 (J)Ljava/lang/String;
#43 = Methodref #34.#44 // java/io/PrintStream.println:(Ljava/lang/String;)V
#44 = NameAndType #37:#45 // println:(Ljava/lang/String;)V
#45 = Utf8 (Ljava/lang/String;)V
#46 = Methodref #19.#3 // Benchmark."<init>":()V
#47 = Methodref #19.#48 // Benchmark.measure:()V
#48 = NameAndType #49:#6 // measure:()V
#49 = Utf8 measure
#50 = InterfaceMethodref #51.#52 // java/util/stream/IntStream.range:(II)Ljava/util/stream/IntStream;
#51 = Class #53 // java/util/stream/IntStream
#52 = NameAndType #54:#55 // range:(II)Ljava/util/stream/IntStream;
#53 = Utf8 java/util/stream/IntStream
#54 = Utf8 range
#55 = Utf8 (II)Ljava/util/stream/IntStream;
#56 = InvokeDynamic #4:#57 // #4:applyAsInt:()Ljava/util/function/IntUnaryOperator;
#57 = NameAndType #58:#59 // applyAsInt:()Ljava/util/function/IntUnaryOperator;
#58 = Utf8 applyAsInt
#59 = Utf8 ()Ljava/util/function/IntUnaryOperator;
#60 = InterfaceMethodref #51.#61 // java/util/stream/IntStream.map:(Ljava/util/function/IntUnaryOperator;)Ljava/util/stream/IntStream;
#61 = NameAndType #62:#63 // map:(Ljava/util/function/IntUnaryOperator;)Ljava/util/stream/IntStream;
#62 = Utf8 map
#63 = Utf8 (Ljava/util/function/IntUnaryOperator;)Ljava/util/stream/IntStream;
#64 = InterfaceMethodref #51.#65 // java/util/stream/IntStream.sum:()I
#65 = NameAndType #66:#17 // sum:()I
#66 = Utf8 sum
#67 = InvokeDynamic #5:#57 // #5:applyAsInt:()Ljava/util/function/IntUnaryOperator;
#68 = InvokeDynamic #6:#57 // #6:applyAsInt:()Ljava/util/function/IntUnaryOperator;
#69 = Utf8 Code
#70 = Utf8 LineNumberTable
#71 = Utf8 StackMapTable
#72 = Utf8 main
#73 = Utf8 ([Ljava/lang/String;)V
#74 = Utf8 lambda$compute$5
#75 = Utf8 lambda$compute$4
#76 = Utf8 (I)I
#77 = Utf8 lambda$compute$3
#78 = Utf8 lambda$compute$2
#79 = Utf8 lambda$compute$1
#80 = Utf8 lambda$compute$0
#81 = Utf8 SourceFile
#82 = Utf8 Benchmark.java
#83 = Utf8 BootstrapMethods
#84 = MethodHandle #6:#85 // 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;
#85 = Methodref #86.#87 // 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;
#86 = Class #88 // java/lang/invoke/LambdaMetafactory
#87 = NameAndType #89:#90 // 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;
#88 = Utf8 java/lang/invoke/LambdaMetafactory
#89 = Utf8 metafactory
#90 = Utf8 (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;
#91 = MethodType #17 // ()I
#92 = MethodHandle #6:#93 // invokestatic Benchmark.lambda$compute$1:()I
#93 = Methodref #19.#94 // Benchmark.lambda$compute$1:()I
#94 = NameAndType #79:#17 // lambda$compute$1:()I
#95 = MethodHandle #6:#96 // invokestatic Benchmark.lambda$compute$3:()I
#96 = Methodref #19.#97 // Benchmark.lambda$compute$3:()I
#97 = NameAndType #77:#17 // lambda$compute$3:()I
#98 = MethodHandle #6:#99 // invokestatic Benchmark.lambda$compute$5:()I
#99 = Methodref #19.#100 // Benchmark.lambda$compute$5:()I
#100 = NameAndType #74:#17 // lambda$compute$5:()I
#101 = MethodHandle #6:#102 // invokestatic java/lang/invoke/StringConcatFactory.makeConcatWithConstants:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite;
#102 = Methodref #103.#104 // java/lang/invoke/StringConcatFactory.makeConcatWithConstants:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite;
#103 = Class #105 // java/lang/invoke/StringConcatFactory
#104 = NameAndType #41:#106 // makeConcatWithConstants:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite;
#105 = Utf8 java/lang/invoke/StringConcatFactory
#106 = Utf8 (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite;
#107 = String #108 // Duration: ms
#108 = Utf8 Duration: ms
#109 = MethodType #76 // (I)I
#110 = MethodHandle #6:#111 // invokestatic Benchmark.lambda$compute$4:(I)I
#111 = Methodref #19.#112 // Benchmark.lambda$compute$4:(I)I
#112 = NameAndType #75:#76 // lambda$compute$4:(I)I
#113 = MethodHandle #6:#114 // invokestatic Benchmark.lambda$compute$2:(I)I
#114 = Methodref #19.#115 // Benchmark.lambda$compute$2:(I)I
#115 = NameAndType #78:#76 // lambda$compute$2:(I)I
#116 = MethodHandle #6:#117 // invokestatic Benchmark.lambda$compute$0:(I)I
#117 = Methodref #19.#118 // Benchmark.lambda$compute$0:(I)I
#118 = NameAndType #80:#76 // lambda$compute$0:(I)I
#119 = Utf8 InnerClasses
#120 = Class #121 // java/lang/invoke/MethodHandles$Lookup
#121 = Utf8 java/lang/invoke/MethodHandles$Lookup
#122 = Class #123 // java/lang/invoke/MethodHandles
#123 = Utf8 java/lang/invoke/MethodHandles
#124 = Utf8 Lookup
{
public Benchmark();
descriptor: ()V
flags: ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
0: aload_0
1: invokespecial #1 // Method java/lang/Object."<init>":()V
4: return
LineNumberTable:
line 4: 0
private int compute();
descriptor: ()I
flags: ACC_PRIVATE
Code:
stack=2, locals=4, args_size=1
0: invokedynamic #7, 0 // InvokeDynamic #0:getAsInt:()Ljava/util/function/IntSupplier;
5: astore_1
6: invokedynamic #11, 0 // InvokeDynamic #1:getAsInt:()Ljava/util/function/IntSupplier;
11: astore_2
12: invokedynamic #12, 0 // InvokeDynamic #2:getAsInt:()Ljava/util/function/IntSupplier;
17: astore_3
18: aload_1
19: invokeinterface #13, 1 // InterfaceMethod java/util/function/IntSupplier.getAsInt:()I
24: aload_2
25: invokeinterface #13, 1 // InterfaceMethod java/util/function/IntSupplier.getAsInt:()I
30: iadd
31: aload_3
32: invokeinterface #13, 1 // InterfaceMethod java/util/function/IntSupplier.getAsInt:()I
37: iadd
38: ireturn
LineNumberTable:
line 6: 0
line 7: 6
line 8: 12
line 9: 18
private void measure();
descriptor: ()V
flags: ACC_PRIVATE
Code:
stack=5, locals=6, args_size=1
0: iconst_0
1: istore_1
2: iconst_0
3: istore_2
4: iload_2
5: sipush 20000
8: if_icmpge 24
11: iload_1
12: aload_0
13: invokevirtual #18 // Method compute:()I
16: iadd
17: istore_1
18: iinc 2, 1
21: goto 4
24: invokestatic #23 // Method java/lang/System.currentTimeMillis:()J
27: lstore_2
28: iconst_0
29: istore 4
31: iload 4
33: sipush 20000
36: if_icmpge 52
39: iload_1
40: aload_0
41: invokevirtual #18 // Method compute:()I
44: iadd
45: istore_1
46: iinc 4, 1
49: goto 31
52: invokestatic #23 // Method java/lang/System.currentTimeMillis:()J
55: lstore 4
57: getstatic #29 // Field java/lang/System.out:Ljava/io/PrintStream;
60: iload_1
61: invokevirtual #33 // Method java/io/PrintStream.println:(I)V
64: getstatic #29 // Field java/lang/System.out:Ljava/io/PrintStream;
67: lload 4
69: lload_2
70: lsub
71: invokedynamic #39, 0 // InvokeDynamic #3:makeConcatWithConstants:(J)Ljava/lang/String;
76: invokevirtual #43 // Method java/io/PrintStream.println:(Ljava/lang/String;)V
79: return
LineNumberTable:
line 13: 0
line 15: 2
line 16: 11
line 15: 18
line 20: 24
line 21: 28
line 22: 39
line 21: 46
line 24: 52
line 25: 57
line 26: 64
line 27: 79
StackMapTable: number_of_entries = 4
frame_type = 253 /* append */
offset_delta = 4
locals = [ int, int ]
frame_type = 250 /* chop */
offset_delta = 19
frame_type = 253 /* append */
offset_delta = 6
locals = [ long, int ]
frame_type = 250 /* chop */
offset_delta = 20
public static void main(java.lang.String[]);
descriptor: ([Ljava/lang/String;)V
flags: ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
0: new #19 // class Benchmark
3: dup
4: invokespecial #46 // Method "<init>":()V
7: invokevirtual #47 // Method measure:()V
10: return
LineNumberTable:
line 30: 0
line 31: 10
private static int lambda$compute$5();
descriptor: ()I
flags: ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=0, args_size=0
0: iconst_0
1: sipush 10000
4: invokestatic #50 // InterfaceMethod java/util/stream/IntStream.range:(II)Ljava/util/stream/IntStream;
7: invokedynamic #56, 0 // InvokeDynamic #4:applyAsInt:()Ljava/util/function/IntUnaryOperator;
12: invokeinterface #60, 2 // InterfaceMethod java/util/stream/IntStream.map:(Ljava/util/function/IntUnaryOperator;)Ljava/util/stream/IntStream;
17: invokeinterface #64, 1 // InterfaceMethod java/util/stream/IntStream.sum:()I
22: ireturn
LineNumberTable:
line 8: 0
private static int lambda$compute$4(int);
descriptor: (I)I
flags: ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
0: iconst_1
1: ireturn
LineNumberTable:
line 8: 0
private static int lambda$compute$3();
descriptor: ()I
flags: ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=0, args_size=0
0: iconst_0
1: sipush 10000
4: invokestatic #50 // InterfaceMethod java/util/stream/IntStream.range:(II)Ljava/util/stream/IntStream;
7: invokedynamic #67, 0 // InvokeDynamic #5:applyAsInt:()Ljava/util/function/IntUnaryOperator;
12: invokeinterface #60, 2 // InterfaceMethod java/util/stream/IntStream.map:(Ljava/util/function/IntUnaryOperator;)Ljava/util/stream/IntStream;
17: invokeinterface #64, 1 // InterfaceMethod java/util/stream/IntStream.sum:()I
22: ireturn
LineNumberTable:
line 7: 0
private static int lambda$compute$2(int);
descriptor: (I)I
flags: ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
0: iconst_1
1: ireturn
LineNumberTable:
line 7: 0
private static int lambda$compute$1();
descriptor: ()I
flags: ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=0, args_size=0
0: iconst_0
1: sipush 10000
4: invokestatic #50 // InterfaceMethod java/util/stream/IntStream.range:(II)Ljava/util/stream/IntStream;
7: invokedynamic #68, 0 // InvokeDynamic #6:applyAsInt:()Ljava/util/function/IntUnaryOperator;
12: invokeinterface #60, 2 // InterfaceMethod java/util/stream/IntStream.map:(Ljava/util/function/IntUnaryOperator;)Ljava/util/stream/IntStream;
17: invokeinterface #64, 1 // InterfaceMethod java/util/stream/IntStream.sum:()I
22: ireturn
LineNumberTable:
line 6: 0
private static int lambda$compute$0(int);
descriptor: (I)I
flags: ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
0: iconst_1
1: ireturn
LineNumberTable:
line 6: 0
}
SourceFile: "Benchmark.java"
BootstrapMethods:
0: #84 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:
#91 ()I
#92 invokestatic Benchmark.lambda$compute$1:()I
#91 ()I
1: #84 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:
#91 ()I
#95 invokestatic Benchmark.lambda$compute$3:()I
#91 ()I
2: #84 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:
#91 ()I
#98 invokestatic Benchmark.lambda$compute$5:()I
#91 ()I
3: #101 invokestatic java/lang/invoke/StringConcatFactory.makeConcatWithConstants:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite;
Method arguments:
#107 Duration: ms
4: #84 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:
#109 (I)I
#110 invokestatic Benchmark.lambda$compute$4:(I)I
#109 (I)I
5: #84 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:
#109 (I)I
#113 invokestatic Benchmark.lambda$compute$2:(I)I
#109 (I)I
6: #84 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:
#109 (I)I
#116 invokestatic Benchmark.lambda$compute$0:(I)I
#109 (I)I
InnerClasses:
public static final #124= #120 of #122; //Lookup=class java/lang/invoke/MethodHandles$Lookup of class java/lang/invoke/MethodHandles
# Compiled with -g:none
public class Benchmark
minor version: 0
major version: 61
flags: ACC_PUBLIC, ACC_SUPER
Constant pool:
#1 = Methodref #2.#3 // java/lang/Object."<init>":()V
#2 = Class #4 // java/lang/Object
#3 = NameAndType #5:#6 // "<init>":()V
#4 = Utf8 java/lang/Object
#5 = Utf8 <init>
#6 = Utf8 ()V
#7 = InvokeDynamic #0:#8 // #0:getAsInt:()Ljava/util/function/IntSupplier;
#8 = NameAndType #9:#10 // getAsInt:()Ljava/util/function/IntSupplier;
#9 = Utf8 getAsInt
#10 = Utf8 ()Ljava/util/function/IntSupplier;
#11 = InterfaceMethodref #12.#13 // java/util/function/IntSupplier.getAsInt:()I
#12 = Class #14 // java/util/function/IntSupplier
#13 = NameAndType #9:#15 // getAsInt:()I
#14 = Utf8 java/util/function/IntSupplier
#15 = Utf8 ()I
#16 = Methodref #17.#18 // Benchmark.compute:()I
#17 = Class #19 // Benchmark
#18 = NameAndType #20:#15 // compute:()I
#19 = Utf8 Benchmark
#20 = Utf8 compute
#21 = Methodref #22.#23 // java/lang/System.currentTimeMillis:()J
#22 = Class #24 // java/lang/System
#23 = NameAndType #25:#26 // currentTimeMillis:()J
#24 = Utf8 java/lang/System
#25 = Utf8 currentTimeMillis
#26 = Utf8 ()J
#27 = Fieldref #22.#28 // java/lang/System.out:Ljava/io/PrintStream;
#28 = NameAndType #29:#30 // out:Ljava/io/PrintStream;
#29 = Utf8 out
#30 = Utf8 Ljava/io/PrintStream;
#31 = Methodref #32.#33 // java/io/PrintStream.println:(I)V
#32 = Class #34 // java/io/PrintStream
#33 = NameAndType #35:#36 // println:(I)V
#34 = Utf8 java/io/PrintStream
#35 = Utf8 println
#36 = Utf8 (I)V
#37 = InvokeDynamic #1:#38 // #1:makeConcatWithConstants:(J)Ljava/lang/String;
#38 = NameAndType #39:#40 // makeConcatWithConstants:(J)Ljava/lang/String;
#39 = Utf8 makeConcatWithConstants
#40 = Utf8 (J)Ljava/lang/String;
#41 = Methodref #32.#42 // java/io/PrintStream.println:(Ljava/lang/String;)V
#42 = NameAndType #35:#43 // println:(Ljava/lang/String;)V
#43 = Utf8 (Ljava/lang/String;)V
#44 = Methodref #17.#3 // Benchmark."<init>":()V
#45 = Methodref #17.#46 // Benchmark.measure:()V
#46 = NameAndType #47:#6 // measure:()V
#47 = Utf8 measure
#48 = InterfaceMethodref #49.#50 // java/util/stream/IntStream.range:(II)Ljava/util/stream/IntStream;
#49 = Class #51 // java/util/stream/IntStream
#50 = NameAndType #52:#53 // range:(II)Ljava/util/stream/IntStream;
#51 = Utf8 java/util/stream/IntStream
#52 = Utf8 range
#53 = Utf8 (II)Ljava/util/stream/IntStream;
#54 = InvokeDynamic #2:#55 // #2:applyAsInt:()Ljava/util/function/IntUnaryOperator;
#55 = NameAndType #56:#57 // applyAsInt:()Ljava/util/function/IntUnaryOperator;
#56 = Utf8 applyAsInt
#57 = Utf8 ()Ljava/util/function/IntUnaryOperator;
#58 = InterfaceMethodref #49.#59 // java/util/stream/IntStream.map:(Ljava/util/function/IntUnaryOperator;)Ljava/util/stream/IntStream;
#59 = NameAndType #60:#61 // map:(Ljava/util/function/IntUnaryOperator;)Ljava/util/stream/IntStream;
#60 = Utf8 map
#61 = Utf8 (Ljava/util/function/IntUnaryOperator;)Ljava/util/stream/IntStream;
#62 = InterfaceMethodref #49.#63 // java/util/stream/IntStream.sum:()I
#63 = NameAndType #64:#15 // sum:()I
#64 = Utf8 sum
#65 = Utf8 Code
#66 = Utf8 StackMapTable
#67 = Utf8 main
#68 = Utf8 ([Ljava/lang/String;)V
#69 = Utf8 lambda$compute$1
#70 = Utf8 lambda$compute$0
#71 = Utf8 (I)I
#72 = Utf8 BootstrapMethods
#73 = MethodHandle #6:#74 // 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;
#74 = Methodref #75.#76 // 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;
#75 = Class #77 // java/lang/invoke/LambdaMetafactory
#76 = NameAndType #78:#79 // 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;
#77 = Utf8 java/lang/invoke/LambdaMetafactory
#78 = Utf8 metafactory
#79 = Utf8 (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;
#80 = MethodType #15 // ()I
#81 = MethodHandle #6:#82 // invokestatic Benchmark.lambda$compute$1:()I
#82 = Methodref #17.#83 // Benchmark.lambda$compute$1:()I
#83 = NameAndType #69:#15 // lambda$compute$1:()I
#84 = MethodHandle #6:#85 // invokestatic java/lang/invoke/StringConcatFactory.makeConcatWithConstants:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite;
#85 = Methodref #86.#87 // java/lang/invoke/StringConcatFactory.makeConcatWithConstants:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite;
#86 = Class #88 // java/lang/invoke/StringConcatFactory
#87 = NameAndType #39:#89 // makeConcatWithConstants:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite;
#88 = Utf8 java/lang/invoke/StringConcatFactory
#89 = Utf8 (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite;
#90 = String #91 // Duration: ms
#91 = Utf8 Duration: ms
#92 = MethodType #71 // (I)I
#93 = MethodHandle #6:#94 // invokestatic Benchmark.lambda$compute$0:(I)I
#94 = Methodref #17.#95 // Benchmark.lambda$compute$0:(I)I
#95 = NameAndType #70:#71 // lambda$compute$0:(I)I
#96 = Utf8 InnerClasses
#97 = Class #98 // java/lang/invoke/MethodHandles$Lookup
#98 = Utf8 java/lang/invoke/MethodHandles$Lookup
#99 = Class #100 // java/lang/invoke/MethodHandles
#100 = Utf8 java/lang/invoke/MethodHandles
#101 = Utf8 Lookup
{
public Benchmark();
descriptor: ()V
flags: ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
0: aload_0
1: invokespecial #1 // Method java/lang/Object."<init>":()V
4: return
private int compute();
descriptor: ()I
flags: ACC_PRIVATE
Code:
stack=2, locals=4, args_size=1
0: invokedynamic #7, 0 // InvokeDynamic #0:getAsInt:()Ljava/util/function/IntSupplier;
5: astore_1
6: invokedynamic #7, 0 // InvokeDynamic #0:getAsInt:()Ljava/util/function/IntSupplier;
11: astore_2
12: invokedynamic #7, 0 // InvokeDynamic #0:getAsInt:()Ljava/util/function/IntSupplier;
17: astore_3
18: aload_1
19: invokeinterface #11, 1 // InterfaceMethod java/util/function/IntSupplier.getAsInt:()I
24: aload_2
25: invokeinterface #11, 1 // InterfaceMethod java/util/function/IntSupplier.getAsInt:()I
30: iadd
31: aload_3
32: invokeinterface #11, 1 // InterfaceMethod java/util/function/IntSupplier.getAsInt:()I
37: iadd
38: ireturn
private void measure();
descriptor: ()V
flags: ACC_PRIVATE
Code:
stack=5, locals=6, args_size=1
0: iconst_0
1: istore_1
2: iconst_0
3: istore_2
4: iload_2
5: sipush 20000
8: if_icmpge 24
11: iload_1
12: aload_0
13: invokevirtual #16 // Method compute:()I
16: iadd
17: istore_1
18: iinc 2, 1
21: goto 4
24: invokestatic #21 // Method java/lang/System.currentTimeMillis:()J
27: lstore_2
28: iconst_0
29: istore 4
31: iload 4
33: sipush 20000
36: if_icmpge 52
39: iload_1
40: aload_0
41: invokevirtual #16 // Method compute:()I
44: iadd
45: istore_1
46: iinc 4, 1
49: goto 31
52: invokestatic #21 // Method java/lang/System.currentTimeMillis:()J
55: lstore 4
57: getstatic #27 // Field java/lang/System.out:Ljava/io/PrintStream;
60: iload_1
61: invokevirtual #31 // Method java/io/PrintStream.println:(I)V
64: getstatic #27 // Field java/lang/System.out:Ljava/io/PrintStream;
67: lload 4
69: lload_2
70: lsub
71: invokedynamic #37, 0 // InvokeDynamic #1:makeConcatWithConstants:(J)Ljava/lang/String;
76: invokevirtual #41 // Method java/io/PrintStream.println:(Ljava/lang/String;)V
79: return
StackMapTable: number_of_entries = 4
frame_type = 253 /* append */
offset_delta = 4
locals = [ int, int ]
frame_type = 250 /* chop */
offset_delta = 19
frame_type = 253 /* append */
offset_delta = 6
locals = [ long, int ]
frame_type = 250 /* chop */
offset_delta = 20
public static void main(java.lang.String[]);
descriptor: ([Ljava/lang/String;)V
flags: ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
0: new #17 // class Benchmark
3: dup
4: invokespecial #44 // Method "<init>":()V
7: invokevirtual #45 // Method measure:()V
10: return
private static int lambda$compute$1();
descriptor: ()I
flags: ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=0, args_size=0
0: iconst_0
1: sipush 10000
4: invokestatic #48 // InterfaceMethod java/util/stream/IntStream.range:(II)Ljava/util/stream/IntStream;
7: invokedynamic #54, 0 // InvokeDynamic #2:applyAsInt:()Ljava/util/function/IntUnaryOperator;
12: invokeinterface #58, 2 // InterfaceMethod java/util/stream/IntStream.map:(Ljava/util/function/IntUnaryOperator;)Ljava/util/stream/IntStream;
17: invokeinterface #62, 1 // InterfaceMethod java/util/stream/IntStream.sum:()I
22: ireturn
private static int lambda$compute$0(int);
descriptor: (I)I
flags: ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
0: iconst_1
1: ireturn
}
BootstrapMethods:
0: #73 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:
#80 ()I
#81 invokestatic Benchmark.lambda$compute$1:()I
#80 ()I
1: #84 invokestatic java/lang/invoke/StringConcatFactory.makeConcatWithConstants:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite;
Method arguments:
#90 Duration: ms
2: #73 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:
#92 (I)I
#93 invokestatic Benchmark.lambda$compute$0:(I)I
#92 (I)I
InnerClasses:
public static final #101= #97 of #99; //Lookup=class java/lang/invoke/MethodHandles$Lookup of class java/lang/invoke/MethodHandles
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment