11[INFO] Scanning for projects...
2- Downloading from central: https://repo.maven.apache.org/maven2/org/cyclonedx/cyclonedx-maven-plugin/2.9.0/cyclonedx-maven-plugin-2.9.0.pom
3- Progress (1): 1.4/19 kBProgress (1): 2.8/19 kBProgress (1): 4.1/19 kBProgress (1): 5.5/19 kBProgress (1): 6.9/19 kBProgress (1): 8.3/19 kBProgress (1): 9.7/19 kBProgress (1): 11/19 kB Progress (1): 12/19 kBProgress (1): 14/19 kBProgress (1): 15/19 kBProgress (1): 17/19 kBProgress (1): 18/19 kBProgress (1): 19 kB Downloaded from central: https://repo.maven.apache.org/maven2/org/cyclonedx/cyclonedx-maven-plugin/2.9.0/cyclonedx-maven-plugin-2.9.0.pom (19 kB at 97 kB/s)
42[INFO]
53[INFO] ------------------------< dev.openfeature:sdk >-------------------------
64[INFO] Building OpenFeature Java SDK 1.12.0
@@ -22,7 +20,27 @@ Audit done.
2220[INFO] skip non existing resourceDirectory /home/todd/git/java-sdk/src/main/resources
2321[INFO]
2422[INFO] --- compiler:3.13.0:compile (default-compile) @ sdk ---
25- [INFO] Nothing to compile - all classes are up to date.
23+ [INFO] Recompiling the module because of changed source code.
24+ [INFO] Compiling 65 source files with javac [debug target 1.8] to target/classes
25+ [WARNING] bootstrap class path not set in conjunction with -source 8
26+ [WARNING] source value 8 is obsolete and will be removed in a future release
27+ [WARNING] target value 8 is obsolete and will be removed in a future release
28+ [WARNING] To suppress warnings about obsolete options, use -Xlint:-options.
29+ [INFO] Annotation processing is enabled because one or more processors were found
30+ on the class path. A future release of javac may disable annotation processing
31+ unless at least one processor is specified by name (-processor), or a search
32+ path is specified (--processor-path, --processor-module-path), or annotation
33+ processing is enabled explicitly (-proc:only, -proc:full).
34+ Use -Xlint:-options to suppress this message.
35+ Use -proc:none to disable annotation processing.
36+ [WARNING] /home/todd/git/java-sdk/src/main/java/dev/openfeature/sdk/MutableStructure.java:[19,1] Generating equals/hashCode implementation but without a call to superclass, even though this class does not extend java.lang.Object. If this is intentional, add '@EqualsAndHashCode(callSuper=false)' to your type.
37+ [WARNING] /home/todd/git/java-sdk/src/main/java/dev/openfeature/sdk/ImmutableStructure.java:[22,1] Generating equals/hashCode implementation but without a call to superclass, even though this class does not extend java.lang.Object. If this is intentional, add '@EqualsAndHashCode(callSuper=false)' to your type.
38+ [WARNING] /home/todd/git/java-sdk/src/main/java/dev/openfeature/sdk/EventDetails.java:[9,1] Generating equals/hashCode implementation but without a call to superclass, even though this class does not extend java.lang.Object. If this is intentional, add '@EqualsAndHashCode(callSuper=false)' to your type.
39+ [WARNING] /home/todd/git/java-sdk/src/main/java/dev/openfeature/sdk/Value.java:[27,26] finalize() in java.lang.Object has been deprecated and marked for removal
40+ [INFO] /home/todd/git/java-sdk/src/main/java/dev/openfeature/sdk/NoOpProvider.java: Some input files use or override a deprecated API.
41+ [INFO] /home/todd/git/java-sdk/src/main/java/dev/openfeature/sdk/NoOpProvider.java: Recompile with -Xlint:deprecation for details.
42+ [INFO] /home/todd/git/java-sdk/src/main/java/dev/openfeature/sdk/Value.java: Some input files use unchecked or unsafe operations.
43+ [INFO] /home/todd/git/java-sdk/src/main/java/dev/openfeature/sdk/Value.java: Recompile with -Xlint:unchecked for details.
2644[INFO]
2745[INFO] --- resources:3.3.1:testResources (default-testResources) @ sdk ---
2846[INFO] Copying 2 resources from src/test/resources to target/test-classes
@@ -31,7 +49,12 @@ Audit done.
3149[INFO]
3250[INFO]
3351[INFO] --- jmh:0.2.2:benchmark (default-cli) @ sdk ---
34- [INFO] Nothing to compile - all classes are up to date
52+ [INFO] Changes detected - recompiling the module!
53+ [INFO] Compiling 52 source files to /home/todd/git/java-sdk/target/test-classes
54+ [INFO] /home/todd/git/java-sdk/src/test/java/dev/openfeature/sdk/LockingTest.java: Some input files use or override a deprecated API.
55+ [INFO] /home/todd/git/java-sdk/src/test/java/dev/openfeature/sdk/LockingTest.java: Recompile with -Xlint:deprecation for details.
56+ [INFO] /home/todd/git/java-sdk/src/test/java/dev/openfeature/sdk/internal/TriConsumerTest.java: Some input files use unchecked or unsafe operations.
57+ [INFO] /home/todd/git/java-sdk/src/test/java/dev/openfeature/sdk/internal/TriConsumerTest.java: Recompile with -Xlint:unchecked for details.
3558[INFO] Executing the JMH benchmarks
3659# JMH version: 1.37
3760# VM version: JDK 21.0.4, OpenJDK 64-Bit Server VM, 21.0.4+7
@@ -51,57 +74,57 @@ Audit done.
5174[0.001s][warning][gc,init] Consider enabling -XX:+AlwaysPreTouch to avoid memory commit hiccups
5275Iteration 1: num #instances #bytes class name (module)
5376-------------------------------------------------------
54- 1:
1146018 55008864 java.util.HashMap (
[email protected] )
77+ 1:
1146984 55055232 java.util.HashMap (
[email protected] )
5578 2: 700056 11200896 java.util.HashMap$EntrySet (
[email protected] )
56- 3:
47755 9296008 [B (
[email protected] )
57- 4:
305988 8105728 [Ljava.lang.Object; (
[email protected] )
58- 5: 490930 7854880 dev.openfeature.sdk.ImmutableStructure
59- 6: 480930 7694880 dev.openfeature.sdk.ImmutableContext
79+ 3:
47757 9295888 [B (
[email protected] )
80+ 4:
305989 8105752 [Ljava.lang.Object; (
[email protected] )
81+ 5: 482225 7715600 dev.openfeature.sdk.ImmutableStructure
82+ 6: 472225 7555600 dev.openfeature.sdk.ImmutableContext
6083 7: 100000 4000000 dev.openfeature.sdk.HookContext
6184 8: 100000 4000000 dev.openfeature.sdk.HookContext$HookContextBuilder
62- 9:
131512 3156288 java.util.ArrayList (
[email protected] )
63- 10: 50000 2000000 dev.openfeature.sdk.FlagEvaluationDetails
64- 11: 50000 2000000 dev.openfeature.sdk.ProviderEvaluation
65- 12:
153 1731448 [Ljdk.internal.vm.FillerElement; ([email protected] ) 66- 13:
51675 1653600 java.util.
ArrayList$Itr (
[email protected] )
67- 14:
50002 1600064 java.util.Collections$UnmodifiableMap ([email protected] ) 68- 15: 100001 1600016 dev.openfeature.sdk.NoOpProvider$$Lambda/0x00007b6ff402fa78
69- 16:
50000 1600000
[Ljava.util.List; ([email protected] ) 70- 17: 100000 1600000 dev.openfeature.sdk.ImmutableMetadata
71- 18: 100000 1600000 dev.openfeature.sdk.ImmutableMetadata$ImmutableMetadataBuilder
72- 19: 100000 1600000 dev.openfeature.sdk.OpenFeatureClient$$Lambda/0x00007b6ff40821f8
73- 20:
75022 1200352 java.util.Optional ([email protected] ) 74- 21: 50000 1200000 dev.openfeature.sdk.FlagEvaluationOptions
75- 22: 35143 843432 dev.openfeature.sdk.FlagEvaluationOptions$FlagEvaluationOptionsBuilder
85+ 9:
154 2995712 [Ljdk.internal.vm.FillerElement; (
[email protected] )
86+ 10:
122807 2947368 java.util.ArrayList ([email protected] ) 87+ 11: 50000 2000000 dev.openfeature.sdk.FlagEvaluationDetails
88+ 12: 50000 2000000 dev.openfeature.sdk.ProviderEvaluation
89+ 13:
50002 1600064 java.util.
Collections$UnmodifiableMap (
[email protected] )
90+ 14: 100001 1600016 dev.openfeature.sdk.NoOpProvider$$Lambda/0x000074760c02fa78
91+ 15:
50000 1600000 [Ljava.util.List; ([email protected] ) 92+ 16: 100000 1600000 dev.openfeature.sdk.ImmutableMetadata
93+ 17: 100000 1600000 dev.openfeature.sdk.ImmutableMetadata$ImmutableMetadataBuilder
94+ 18: 100000 1600000 dev.openfeature.sdk.OpenFeatureClient$$Lambda/0x000074760c0821f8
95+ 19:
43808 1401856 java.util.ArrayList$Itr ([email protected] ) 96+ 20: 50000 1200000 dev.openfeature.sdk.FlagEvaluationOptions
97+ 21:
56919 910704 java.util.Optional ([email protected] ) 98+ 22: 34754 834096 dev.openfeature.sdk.FlagEvaluationOptions$FlagEvaluationOptionsBuilder
7699 23: 4489 679248 [I (
[email protected] )
77- 24:
26553 637272 java.lang.String (
[email protected] )
78- 25: 13155 631440 dev.openfeature.sdk.FlagEvaluationDetails$FlagEvaluationDetailsBuilder
79- 26: 14195 567800 dev.openfeature.sdk.ProviderEvaluation$ProviderEvaluationBuilder
80- 27: 30850 493600 dev.openfeature.sdk.internal.AutoCloseableReentrantReadWriteLock $$Lambda/0x00007b6ff402eae8
81- 28: 18779 450696 dev.openfeature.sdk.HookSupport$$Lambda/0x00007b6ff4081230
82- 29: 18171 436104 dev.openfeature.sdk.HookSupport $$Lambda/0x00007b6ff4081000
83- 30:
1461 390008 [J ([email protected] ) 100+ 24:
26554 637296 java.lang.String (
[email protected] )
101+ 25: 12462 598176 dev.openfeature.sdk.FlagEvaluationDetails$FlagEvaluationDetailsBuilder
102+ 26: 13748 549920 dev.openfeature.sdk.ProviderEvaluation$ProviderEvaluationBuilder
103+ 27: 16418 394032 dev.openfeature.sdk.HookSupport $$Lambda/0x000074760c081230
104+ 28:
1461 390008 [J ([email protected] ) 105+ 29: 24033 384528 dev.openfeature.sdk.internal.AutoCloseableReentrantReadWriteLock $$Lambda/0x000074760c02eae8
106+ 30: 14591 350184 dev.openfeature.sdk.HookSupport$$Lambda/0x000074760c081000
84107 31: 2355 288104 java.lang.Class (
[email protected] )
85- 32:
4610 258160 jdk.internal.org.objectweb.asm.SymbolTable$Entry (
[email protected] )
86- 33:
10001 240024 java.lang.Double (
[email protected] )
87- 34:
7153 228896 java.
util.HashMap$EntryIterator (
[email protected] )
108+ 32:
8141 260512 java.util.HashMap$EntryIterator (
[email protected] )
109+ 33:
4610 258160 jdk.internal.org.objectweb.asm.SymbolTable$Entry (
[email protected] )
110+ 34:
10001 240024 java.
lang.Double (
[email protected] )
88111 35: 2502 180144 java.lang.reflect.Field (
[email protected] )
89112 36: 10000 160000 dev.openfeature.sdk.Value
90- 37:
6003 144072 java.lang.StringBuilder (
[email protected] )
113+ 37:
6004 144096 java.lang.StringBuilder (
[email protected] )
91114 38: 179 139928 [Ljdk.internal.org.objectweb.asm.SymbolTable$Entry; (
[email protected] )
92- 39:
3821 122272 java.util.concurrent.ConcurrentHashMap$Node (
[email protected] )
115+ 39:
3824 122368 java.util.concurrent.ConcurrentHashMap$Node (
[email protected] )
93116 40: 48 122168 [C (
[email protected] )
94117 41: 1440 113512 [S (
[email protected] )
95118 42: 1201 105688 java.lang.reflect.Method (
[email protected] )
96- 43:
3024 79424 [Ljava.lang.Class; (
[email protected] )
119+ 43:
3030 79616 [Ljava.lang.Class; (
[email protected] )
97120 44: 1349 75544 jdk.internal.org.objectweb.asm.Label (
[email protected] )
98- 45:
332 74368 jdk.internal.org.objectweb.asm.MethodWriter (
[email protected] )
99- 46:
1548 74304 java.lang.invoke.MemberName (
[email protected] )
100- 47:
1789 71560 java.lang.invoke.MethodType (
[email protected] )
121+ 45:
1550 74400 java.lang.invoke.MemberName (
[email protected] )
122+ 46:
332 74368 jdk.internal.org.objectweb.asm.MethodWriter (
[email protected] )
123+ 47:
1794 71760 java.lang.invoke.MethodType (
[email protected] )
101124 48: 1089 69696 java.net.URL (
[email protected] )
102125 49: 2011 64352 java.util.HashMap$Node (
[email protected] )
103126 50: 121 50512 [Ljava.util.concurrent.ConcurrentHashMap$Node; (
[email protected] )
104- 51:
3131 50096 jdk.internal.util.StrongReferenceKey (
[email protected] )
127+ 51:
3140 50240 jdk.internal.util.StrongReferenceKey (
[email protected] )
105128 52: 491 49608 [Ljava.util.HashMap$Node; (
[email protected] )
106129 53: 1057 42280 java.io.ObjectStreamField (
[email protected] )
107130 54: 1225 39200 java.io.File (
[email protected] )
@@ -111,7 +134,7 @@ Iteration 1: num #instances #bytes class name (module)
111134 58: 622 24880 java.lang.NoSuchFieldException (
[email protected] )
112135 59: 571 22840 java.util.LinkedHashMap$Entry (
[email protected] )
113136 60: 473 22704 jdk.internal.ref.CleanerImpl$PhantomCleanableRef (
[email protected] )
114- 61:
687 21984 jdk.internal.util.WeakReferenceKey (
[email protected] )
137+ 61:
689 22048 jdk.internal.util.WeakReferenceKey (
[email protected] )
115138 62: 824 19776 jdk.internal.org.objectweb.asm.ByteVector (
[email protected] )
116139 63: 248 18848 [Ljava.lang.ref.SoftReference; (
[email protected] )
117140 64: 117 17784 jdk.internal.org.objectweb.asm.ClassWriter (
[email protected] )
@@ -170,20 +193,20 @@ Iteration 1: num #instances #bytes class name (module)
170193 117: 301 4816 java.util.HashSet (
[email protected] )
171194 118: 75 4800 java.util.zip.Inflater (
[email protected] )
172195truncated...
173- Total 4538772 138760912
196+ Total 4474389 138762960
174197
175- 0.083 s/op
176- +totalAllocatedBytes: 138760912 .000 bytes
177- +totalAllocatedInstances: 4538772 .000 instances
198+ 0.113 s/op
199+ +totalAllocatedBytes: 138762960 .000 bytes
200+ +totalAllocatedInstances: 4474389 .000 instances
178201 +totalHeap: 521412608.000 bytes
179202
180203
181204
182205Secondary result "dev.openfeature.sdk.benchmark.AllocationBenchmark.run:+totalAllocatedBytes":
183- 138760912 .000 bytes
206+ 138762960 .000 bytes
184207
185208Secondary result "dev.openfeature.sdk.benchmark.AllocationBenchmark.run:+totalAllocatedInstances":
186- 4538772 .000 instances
209+ 4474389 .000 instances
187210
188211Secondary result "dev.openfeature.sdk.benchmark.AllocationBenchmark.run:+totalHeap":
189212 521412608.000 bytes
@@ -204,13 +227,13 @@ different JVMs are already problematic, the performance difference caused by dif
204227modes can be very significant. Please make sure you use the consistent Blackhole mode for comparisons.
205228
206229Benchmark Mode Cnt Score Error Units
207- AllocationBenchmark.run ss 0.083 s/op
208- AllocationBenchmark.run:+totalAllocatedBytes ss 138760912 .000 bytes
209- AllocationBenchmark.run:+totalAllocatedInstances ss 4538772 .000 instances
230+ AllocationBenchmark.run ss 0.113 s/op
231+ AllocationBenchmark.run:+totalAllocatedBytes ss 138762960 .000 bytes
232+ AllocationBenchmark.run:+totalAllocatedInstances ss 4474389 .000 instances
210233AllocationBenchmark.run:+totalHeap ss 521412608.000 bytes
211234[INFO] ------------------------------------------------------------------------
212235[INFO] BUILD SUCCESS
213236[INFO] ------------------------------------------------------------------------
214- [INFO] Total time: 3.068 s
215- [INFO] Finished at: 2024-10-10T11:49:20 -04:00
237+ [INFO] Total time: 8.073 s
238+ [INFO] Finished at: 2024-10-10T12:26:18 -04:00
216239[INFO] ------------------------------------------------------------------------
0 commit comments