Allocated heap profile diff
Allocated 37.3 GiB (-15.628 MiB, ~0%) over 76,154 samples → 76,122 samples (514 KiB per sample).
Category
Change
Delta
%
Size
Samples
Standard library
-0.3%
-120.627 MiB
93.2% → 92.9%
34.8 GiB → 34.7 GiB
70,926 → 70,684
Ours
+4.0%
+104.999 MiB
6.8% → 7.1%
2.55 GiB → 2.66 GiB
5,228 → 5,438
Functions with the largest increase in bytes allocated directly in the function body, excluding callees.
Change
Delta
%
Size
Samples
Function
Location
+3.7%
+62.499 MiB
4.4% → 4.6%
1.65 GiB → 1.71 GiB
3,375 → 3,500
findNearestCentroid()
org.renaissance.jdk.concurrent.JavaKMeans$AssignmentTask
+41.6%
+28.499 MiB
0.2% → 0.3%
68.5 MiB → 97 MiB
137 → 194
vectorSum()
org.renaissance.jdk.concurrent.JavaKMeans$VectorSumTask
+8.1%
+17.499 MiB
0.6%
216 MiB → 233 MiB
432 → 467
grow(int)
java.util.ArrayList
+16.1%
+17.499 MiB
0.3%
108 MiB → 126 MiB
217 → 252
lambda$merge$6(List, List)
org.renaissance.jdk.concurrent.JavaKMeans
+17.8%
+17.499 MiB
0.3%
98.5 MiB → 116 MiB
197 → 232
lambda$collectClusters$0(Double[])
org.renaissance.jdk.concurrent.JavaKMeans$AssignmentTask
+14.0%
+12.499 MiB
0.2% → 0.3%
89.5 MiB → 102 MiB
179 → 204
add(double[], double[])
org.renaissance.jdk.concurrent.JavaKMeans$VectorSumTask
+4.0%
+7.499 MiB
0.5%
185 MiB → 193 MiB
371 → 386
createSubtask(int, int)
org.renaissance.jdk.concurrent.JavaKMeans$VectorSumTask
+9.7%
+6.999 MiB
0.2%
72.5 MiB → 79.5 MiB
145 → 159
merge(Map, Map)
org.renaissance.jdk.concurrent.JavaKMeans
+57.9%
+5.499 MiB
<0.1%
9.5 MiB → 15 MiB
19 → 30
entrySet()
java.util.HashMap
+66.7%
+2.999 MiB
<0.1%
4.5 MiB → 7.5 MiB
9 → 15
<init>(InputStream, Inflater, int)
java.util.zip.InflaterInputStream
+9.1%
+2.499 MiB
0.1%
27.5 MiB → 30 MiB
55 → 60
intStream(Spliterator$OfInt, boolean)
java.util.stream.StreamSupport
+37.5%
+1.499 MiB
<0.1%
4 MiB → 5.5 MiB
8 → 11
awaitDone(int, long)
java.util.concurrent.ForkJoinTask
+150.0%
+1.499 MiB
<0.1%
1024 KiB → 2.5 MiB
2 → 5
mapToObj(DoubleFunction, int)
java.util.stream.DoublePipeline
+7.5%
+1.499 MiB
0.1%
20 MiB → 21.5 MiB
40 → 43
lambda$generateData$4(int)
org.renaissance.jdk.concurrent.JavaKMeans
new
+1.499 MiB
0.0% → <0.1%
0 B → 1.5 MiB
0 → 3
putVal(Object, Object, boolean)
java.util.concurrent.ConcurrentHashMap
new
+1.499 MiB
0.0% → <0.1%
0 B → 1.5 MiB
0 → 3
fillInStackTrace(int)
java.lang.Throwable
+66.7%
+1,023.998 KiB
<0.1%
1.5 MiB → 2.5 MiB
3 → 5
doubleStream(Spliterator$OfDouble, boolean)
java.util.stream.StreamSupport
+9.1%
+1,023.998 KiB
<0.1%
11 MiB → 12 MiB
22 → 24
allocateInstance(Object)
java.lang.invoke.DirectMethodHandle
new
+1,023.998 KiB
0.0% → <0.1%
0 B → 1024 KiB
0 → 2
transferTo(OutputStream)
java.io.InputStream
new
+1,023.998 KiB
0.0% → <0.1%
0 B → 1024 KiB
0 → 2
lambda$boxed$0(int)
org.renaissance.jdk.concurrent.JavaKMeans$UpdateTask
Change
Delta
%
Size
Samples
Function
Location
+8.1%
+17.499 MiB
0.6%
216 MiB → 233 MiB
432 → 467
grow(int)
java.util.ArrayList
+57.9%
+5.499 MiB
<0.1%
9.5 MiB → 15 MiB
19 → 30
entrySet()
java.util.HashMap
+66.7%
+2.999 MiB
<0.1%
4.5 MiB → 7.5 MiB
9 → 15
<init>(InputStream, Inflater, int)
java.util.zip.InflaterInputStream
+9.1%
+2.499 MiB
0.1%
27.5 MiB → 30 MiB
55 → 60
intStream(Spliterator$OfInt, boolean)
java.util.stream.StreamSupport
+37.5%
+1.499 MiB
<0.1%
4 MiB → 5.5 MiB
8 → 11
awaitDone(int, long)
java.util.concurrent.ForkJoinTask
+150.0%
+1.499 MiB
<0.1%
1024 KiB → 2.5 MiB
2 → 5
mapToObj(DoubleFunction, int)
java.util.stream.DoublePipeline
new
+1.499 MiB
0.0% → <0.1%
0 B → 1.5 MiB
0 → 3
putVal(Object, Object, boolean)
java.util.concurrent.ConcurrentHashMap
new
+1.499 MiB
0.0% → <0.1%
0 B → 1.5 MiB
0 → 3
fillInStackTrace(int)
java.lang.Throwable
+66.7%
+1,023.998 KiB
<0.1%
1.5 MiB → 2.5 MiB
3 → 5
doubleStream(Spliterator$OfDouble, boolean)
java.util.stream.StreamSupport
+9.1%
+1,023.998 KiB
<0.1%
11 MiB → 12 MiB
22 → 24
allocateInstance(Object)
java.lang.invoke.DirectMethodHandle
new
+1,023.998 KiB
0.0% → <0.1%
0 B → 1024 KiB
0 → 2
transferTo(OutputStream)
java.io.InputStream
+3.4%
+511.999 KiB
<0.1%
14.5 MiB → 15 MiB
29 → 30
copyOf(byte[], int)
java.util.Arrays
new
+511.999 KiB
0.0% → <0.1%
0 B → 512 KiB
0 → 1
addConstantMemberReference(int, String, String, String)
jdk.internal.org.objectweb.asm.SymbolTable
+100.0%
+511.999 KiB
<0.1%
512 KiB → 1024 KiB
1 → 2
copyOfRangeByte(byte[], int, int)
java.util.Arrays
new
+511.999 KiB
0.0% → <0.1%
0 B → 512 KiB
0 → 1
makeAllocator(MemberName)
java.lang.invoke.DirectMethodHandle
new
+511.999 KiB
0.0% → <0.1%
0 B → 512 KiB
0 → 1
<init>(MethodHandles$Lookup, MethodType, String, MethodType, MethodHandle, MethodType, boolean, Class[], MethodType[])
java.lang.invoke.InnerClassLambdaMetafactory
new
+511.999 KiB
0.0% → <0.1%
0 B → 512 KiB
0 → 1
toString()
java.lang.StringBuilder
new
+511.999 KiB
0.0% → <0.1%
0 B → 512 KiB
0 → 1
transfer(ConcurrentHashMap$Node[], ConcurrentHashMap$Node[])
java.util.concurrent.ConcurrentHashMap
new
+511.999 KiB
0.0% → <0.1%
0 B → 512 KiB
0 → 1
readNBytes(int)
java.io.InputStream
new
+511.999 KiB
0.0% → <0.1%
0 B → 512 KiB
0 → 1
makeVarargsCollector(MethodHandle, Class)
java.lang.invoke.MethodHandleImpl
Change
Delta
%
Size
Samples
Function
Location
+3.7%
+62.499 MiB
4.4% → 4.6%
1.65 GiB → 1.71 GiB
3,375 → 3,500
findNearestCentroid()
org.renaissance.jdk.concurrent.JavaKMeans$AssignmentTask
+41.6%
+28.499 MiB
0.2% → 0.3%
68.5 MiB → 97 MiB
137 → 194
vectorSum()
org.renaissance.jdk.concurrent.JavaKMeans$VectorSumTask
+16.1%
+17.499 MiB
0.3%
108 MiB → 126 MiB
217 → 252
lambda$merge$6(List, List)
org.renaissance.jdk.concurrent.JavaKMeans
+17.8%
+17.499 MiB
0.3%
98.5 MiB → 116 MiB
197 → 232
lambda$collectClusters$0(Double[])
org.renaissance.jdk.concurrent.JavaKMeans$AssignmentTask
+14.0%
+12.499 MiB
0.2% → 0.3%
89.5 MiB → 102 MiB
179 → 204
add(double[], double[])
org.renaissance.jdk.concurrent.JavaKMeans$VectorSumTask
+4.0%
+7.499 MiB
0.5%
185 MiB → 193 MiB
371 → 386
createSubtask(int, int)
org.renaissance.jdk.concurrent.JavaKMeans$VectorSumTask
+9.7%
+6.999 MiB
0.2%
72.5 MiB → 79.5 MiB
145 → 159
merge(Map, Map)
org.renaissance.jdk.concurrent.JavaKMeans
+7.5%
+1.499 MiB
0.1%
20 MiB → 21.5 MiB
40 → 43
lambda$generateData$4(int)
org.renaissance.jdk.concurrent.JavaKMeans
new
+1,023.998 KiB
0.0% → <0.1%
0 B → 1024 KiB
0 → 2
lambda$boxed$0(int)
org.renaissance.jdk.concurrent.JavaKMeans$UpdateTask
+50.0%
+511.999 KiB
<0.1%
1024 KiB → 1.5 MiB
2 → 3
lambda$run$0(int, List, int)
org.renaissance.jdk.concurrent.JavaKMeans
Functions with the largest decrease in bytes allocated directly in the function body, excluding callees.
Change
Delta
%
Size
Samples
Function
Location
-0.3%
-115.238 MiB
91.0% → 90.7%
34 GiB → 33.9 GiB
69,267 → 69,036
copyOf(Object[], int)
java.util.Arrays
-22.1%
-22.999 MiB
0.3% → 0.2%
104 MiB → 81 MiB
208 → 162
collectClusters(int[])
org.renaissance.jdk.concurrent.JavaKMeans$AssignmentTask
-12.0%
-18.999 MiB
0.4%
158 MiB → 139 MiB
316 → 278
createSubtask(int, int)
org.renaissance.jdk.concurrent.JavaKMeans$AssignmentTask
-24.3%
-17.499 MiB
0.2% → 0.1%
72 MiB → 54.5 MiB
144 → 109
valueOf(double)
java.lang.Double
-24.0%
-5.999 MiB
0.1% → <0.1%
25 MiB → 19 MiB
50 → 38
mapToObj(IntFunction, int)
java.util.stream.IntPipeline
-40.7%
-5.499 MiB
<0.1%
13.5 MiB → 8 MiB
27 → 16
builder(long, IntFunction)
java.util.stream.Nodes
-4.0%
-4.499 MiB
0.3%
112 MiB → 107 MiB
224 → 215
resize()
java.util.HashMap
-50.0%
-4.499 MiB
<0.1%
9 MiB → 4.5 MiB
18 → 9
createSubtask(int, int)
org.renaissance.jdk.concurrent.JavaKMeans$UpdateTask
-26.9%
-3.499 MiB
<0.1%
13 MiB → 9.5 MiB
26 → 19
range(int, int)
java.util.stream.IntStream
-25.0%
-2.999 MiB
<0.1%
12 MiB → 9 MiB
24 → 18
opWrapSink(int, Sink)
java.util.stream.IntPipeline$1
-25.0%
-1.999 MiB
<0.1%
8 MiB → 6 MiB
16 → 12
computeClusterAverages()
org.renaissance.jdk.concurrent.JavaKMeans$UpdateTask
removed
-1.499 MiB
<0.1% → 0.0%
1.5 MiB → 0 B
3 → 0
div(double[], int)
org.renaissance.jdk.concurrent.JavaKMeans$UpdateTask
-30.0%
-1.499 MiB
<0.1%
5 MiB → 3.5 MiB
10 → 7
allocateInstance(Class)
jdk.internal.misc.Unsafe
removed
-1,023.998 KiB
<0.1% → 0.0%
1024 KiB → 0 B
2 → 0
average(List)
org.renaissance.jdk.concurrent.JavaKMeans$UpdateTask
removed
-1,023.998 KiB
<0.1% → 0.0%
1024 KiB → 0 B
2 → 0
initCEN(int, ZipCoder)
java.util.zip.ZipFile$Source
removed
-1,023.998 KiB
<0.1% → 0.0%
1024 KiB → 0 B
2 → 0
read(InputStream, String)
java.util.jar.Manifest
removed
-511.999 KiB
<0.1% → 0.0%
512 KiB → 0 B
1 → 0
makeImpl(Class, Class[], boolean)
java.lang.invoke.MethodType
removed
-511.999 KiB
<0.1% → 0.0%
512 KiB → 0 B
1 → 0
load(DataInputStream)
sun.util.calendar.ZoneInfoFile
-50.0%
-511.999 KiB
<0.1%
1024 KiB → 512 KiB
2 → 1
enlarge(int)
jdk.internal.org.objectweb.asm.ByteVector
-50.0%
-511.999 KiB
<0.1%
1024 KiB → 512 KiB
2 → 1
addConstantUtf8(String)
jdk.internal.org.objectweb.asm.SymbolTable
Change
Delta
%
Size
Samples
Function
Location
-0.3%
-115.238 MiB
91.0% → 90.7%
34 GiB → 33.9 GiB
69,267 → 69,036
copyOf(Object[], int)
java.util.Arrays
-24.3%
-17.499 MiB
0.2% → 0.1%
72 MiB → 54.5 MiB
144 → 109
valueOf(double)
java.lang.Double
-24.0%
-5.999 MiB
0.1% → <0.1%
25 MiB → 19 MiB
50 → 38
mapToObj(IntFunction, int)
java.util.stream.IntPipeline
-40.7%
-5.499 MiB
<0.1%
13.5 MiB → 8 MiB
27 → 16
builder(long, IntFunction)
java.util.stream.Nodes
-4.0%
-4.499 MiB
0.3%
112 MiB → 107 MiB
224 → 215
resize()
java.util.HashMap
-26.9%
-3.499 MiB
<0.1%
13 MiB → 9.5 MiB
26 → 19
range(int, int)
java.util.stream.IntStream
-25.0%
-2.999 MiB
<0.1%
12 MiB → 9 MiB
24 → 18
opWrapSink(int, Sink)
java.util.stream.IntPipeline$1
-30.0%
-1.499 MiB
<0.1%
5 MiB → 3.5 MiB
10 → 7
allocateInstance(Class)
jdk.internal.misc.Unsafe
removed
-1,023.998 KiB
<0.1% → 0.0%
1024 KiB → 0 B
2 → 0
initCEN(int, ZipCoder)
java.util.zip.ZipFile$Source
removed
-1,023.998 KiB
<0.1% → 0.0%
1024 KiB → 0 B
2 → 0
read(InputStream, String)
java.util.jar.Manifest
removed
-511.999 KiB
<0.1% → 0.0%
512 KiB → 0 B
1 → 0
makeImpl(Class, Class[], boolean)
java.lang.invoke.MethodType
removed
-511.999 KiB
<0.1% → 0.0%
512 KiB → 0 B
1 → 0
load(DataInputStream)
sun.util.calendar.ZoneInfoFile
-50.0%
-511.999 KiB
<0.1%
1024 KiB → 512 KiB
2 → 1
enlarge(int)
jdk.internal.org.objectweb.asm.ByteVector
-50.0%
-511.999 KiB
<0.1%
1024 KiB → 512 KiB
2 → 1
addConstantUtf8(String)
jdk.internal.org.objectweb.asm.SymbolTable
removed
-511.999 KiB
<0.1% → 0.0%
512 KiB → 0 B
1 → 0
put(Object, Object)
java.util.WeakHashMap
removed
-511.999 KiB
<0.1% → 0.0%
512 KiB → 0 B
1 → 0
clone()
java.lang.Object
removed
-511.999 KiB
<0.1% → 0.0%
512 KiB → 0 B
1 → 0
newNode(int, Object, Object, HashMap$Node)
java.util.LinkedHashMap
removed
-511.999 KiB
<0.1% → 0.0%
512 KiB → 0 B
1 → 0
lookupKey(Object)
jdk.internal.util.ReferencedKeyMap
removed
-511.999 KiB
<0.1% → 0.0%
512 KiB → 0 B
1 → 0
<init>(int)
java.io.ByteArrayOutputStream
removed
-511.999 KiB
<0.1% → 0.0%
512 KiB → 0 B
1 → 0
parseName(byte[], int)
java.util.jar.Manifest
Change
Delta
%
Size
Samples
Function
Location
-22.1%
-22.999 MiB
0.3% → 0.2%
104 MiB → 81 MiB
208 → 162
collectClusters(int[])
org.renaissance.jdk.concurrent.JavaKMeans$AssignmentTask
-12.0%
-18.999 MiB
0.4%
158 MiB → 139 MiB
316 → 278
createSubtask(int, int)
org.renaissance.jdk.concurrent.JavaKMeans$AssignmentTask
-50.0%
-4.499 MiB
<0.1%
9 MiB → 4.5 MiB
18 → 9
createSubtask(int, int)
org.renaissance.jdk.concurrent.JavaKMeans$UpdateTask
-25.0%
-1.999 MiB
<0.1%
8 MiB → 6 MiB
16 → 12
computeClusterAverages()
org.renaissance.jdk.concurrent.JavaKMeans$UpdateTask
removed
-1.499 MiB
<0.1% → 0.0%
1.5 MiB → 0 B
3 → 0
div(double[], int)
org.renaissance.jdk.concurrent.JavaKMeans$UpdateTask
removed
-1,023.998 KiB
<0.1% → 0.0%
1024 KiB → 0 B
2 → 0
average(List)
org.renaissance.jdk.concurrent.JavaKMeans$UpdateTask
Functions with the largest increase in total bytes allocated in the function and all its callees.
Change
Delta
%
Size
Samples
Function
Location
+2.4%
+202.999 MiB
21.8% → 22.3%
8.13 GiB → 8.33 GiB
16,653 → 17,059
computeDirectly()
org.renaissance.jdk.concurrent.JavaKMeans$AssignmentTask
new
+199.46 MiB
0.0% → 0.5%
0 B → 199 MiB
0 → 393
invokeStatic(Object, Object)
java.lang.invoke.LambdaForm$DMH.0x0000000801004800
new
+199.46 MiB
0.0% → 0.5%
0 B → 199 MiB
0 → 393
invoke(Object, Object, Object)
java.lang.invoke.LambdaForm$MH.0x0000000801009800
+2.5%
+155.11 MiB
16.3% → 16.7%
6.08 GiB → 6.23 GiB
12,439 → 12,749
grow()
java.util.ArrayList
+2.5%
+155.11 MiB
16.3% → 16.7%
6.08 GiB → 6.23 GiB
12,439 → 12,749
add(Object, Object[], int)
java.util.ArrayList
+2.5%
+155.11 MiB
16.3% → 16.7%
6.08 GiB → 6.23 GiB
12,439 → 12,749
add(Object)
java.util.ArrayList
+2.1%
+140.499 MiB
17.4% → 17.7%
6.48 GiB → 6.62 GiB
13,278 → 13,559
collectClusters(int[])
org.renaissance.jdk.concurrent.JavaKMeans$AssignmentTask
+140.6%
+93.499 MiB
0.2% → 0.4%
66.5 MiB → 160 MiB
133 → 320
apply(int)
org.renaissance.jdk.concurrent.JavaKMeans$$Lambda.0x00000008011258d8
+1.3%
+69.499 MiB
14.0% → 14.1%
5.21 GiB → 5.28 GiB
10,668 → 10,807
helpJoin(ForkJoinTask, ForkJoinPool$WorkQueue, boolean)
java.util.concurrent.ForkJoinPool
+3.7%
+62.499 MiB
4.4% → 4.6%
1.65 GiB → 1.71 GiB
3,375 → 3,500
findNearestCentroid()
org.renaissance.jdk.concurrent.JavaKMeans$AssignmentTask
+41.6%
+28.499 MiB
0.2% → 0.3%
68.5 MiB → 97 MiB
137 → 194
vectorSum()
org.renaissance.jdk.concurrent.JavaKMeans$VectorSumTask
+41.6%
+28.499 MiB
0.2% → 0.3%
68.5 MiB → 97 MiB
137 → 194
computeDirectly()
org.renaissance.jdk.concurrent.JavaKMeans$VectorSumTask
+0.1%
+27.499 MiB
78.2% → 78.3%
29.2 GiB
59,789 → 59,844
tryRemoveAndExec(ForkJoinTask, boolean)
java.util.concurrent.ForkJoinPool$WorkQueue
+12.8%
+26.999 MiB
0.6%
211 MiB → 238 MiB
422 → 476
computeClusterAverages()
org.renaissance.jdk.concurrent.JavaKMeans$UpdateTask
+12.8%
+26.999 MiB
0.6%
211 MiB → 238 MiB
422 → 476
computeDirectly()
org.renaissance.jdk.concurrent.JavaKMeans$UpdateTask
+0.1%
+26.499 MiB
79.0% → 79.1%
29.5 GiB
60,382 → 60,435
awaitDone(int, long)
java.util.concurrent.ForkJoinTask
+0.1%
+26.499 MiB
79.0% → 79.1%
29.5 GiB
60,382 → 60,435
join()
java.util.concurrent.ForkJoinTask
+12.4%
+23.999 MiB
0.5% → 0.6%
193 MiB → 217 MiB
387 → 435
average(List)
org.renaissance.jdk.concurrent.JavaKMeans$UpdateTask
+17.8%
+17.499 MiB
0.3%
98.5 MiB → 116 MiB
197 → 232
lambda$collectClusters$0(Double[])
org.renaissance.jdk.concurrent.JavaKMeans$AssignmentTask
+17.8%
+17.499 MiB
0.3%
98.5 MiB → 116 MiB
197 → 232
apply(Object)
org.renaissance.jdk.concurrent.JavaKMeans$AssignmentTask$$Lambda.0x0000000801186b38
Change
Delta
%
Size
Samples
Function
Location
new
+199.46 MiB
0.0% → 0.5%
0 B → 199 MiB
0 → 393
invokeStatic(Object, Object)
java.lang.invoke.LambdaForm$DMH.0x0000000801004800
new
+199.46 MiB
0.0% → 0.5%
0 B → 199 MiB
0 → 393
invoke(Object, Object, Object)
java.lang.invoke.LambdaForm$MH.0x0000000801009800
+2.5%
+155.11 MiB
16.3% → 16.7%
6.08 GiB → 6.23 GiB
12,439 → 12,749
grow()
java.util.ArrayList
+2.5%
+155.11 MiB
16.3% → 16.7%
6.08 GiB → 6.23 GiB
12,439 → 12,749
add(Object, Object[], int)
java.util.ArrayList
+2.5%
+155.11 MiB
16.3% → 16.7%
6.08 GiB → 6.23 GiB
12,439 → 12,749
add(Object)
java.util.ArrayList
+1.3%
+69.499 MiB
14.0% → 14.1%
5.21 GiB → 5.28 GiB
10,668 → 10,807
helpJoin(ForkJoinTask, ForkJoinPool$WorkQueue, boolean)
java.util.concurrent.ForkJoinPool
+0.1%
+27.499 MiB
78.2% → 78.3%
29.2 GiB
59,789 → 59,844
tryRemoveAndExec(ForkJoinTask, boolean)
java.util.concurrent.ForkJoinPool$WorkQueue
+0.1%
+26.499 MiB
79.0% → 79.1%
29.5 GiB
60,382 → 60,435
awaitDone(int, long)
java.util.concurrent.ForkJoinTask
+0.1%
+26.499 MiB
79.0% → 79.1%
29.5 GiB
60,382 → 60,435
join()
java.util.concurrent.ForkJoinTask
new
+13.999 MiB
0.0% → <0.1%
0 B → 14 MiB
0 → 28
newInvokeSpecial(Object, int, int, Object)
java.lang.invoke.LambdaForm$DMH.0x0000000801126400
new
+13.999 MiB
0.0% → <0.1%
0 B → 14 MiB
0 → 28
linkToTargetMethod(int, int, Object, Object)
java.lang.invoke.LambdaForm$MH.0x0000000801126c00
+2.8%
+8.999 MiB
0.8% → 0.9%
317 MiB → 326 MiB
634 → 652
computeIfAbsent(Object, Function)
java.util.HashMap
~0%
+7.761 MiB
99.4% → 99.5%
37.1 GiB
75,708 → 75,723
doExec()
java.util.concurrent.ForkJoinTask
~0%
+7.761 MiB
99.4% → 99.5%
37.1 GiB
75,708 → 75,723
topLevelExec(ForkJoinTask, ForkJoinPool$WorkQueue)
java.util.concurrent.ForkJoinPool$WorkQueue
~0%
+7.761 MiB
99.4% → 99.5%
37.1 GiB
75,708 → 75,723
scan(ForkJoinPool$WorkQueue, int, int)
java.util.concurrent.ForkJoinPool
~0%
+7.761 MiB
99.4% → 99.5%
37.1 GiB
75,708 → 75,723
runWorker(ForkJoinPool$WorkQueue)
java.util.concurrent.ForkJoinPool
~0%
+7.761 MiB
99.4% → 99.5%
37.1 GiB
75,708 → 75,723
run()
java.util.concurrent.ForkJoinWorkerThread
~0%
+7.261 MiB
99.4% → 99.5%
37.1 GiB
75,706 → 75,720
exec()
java.util.concurrent.RecursiveTask
+4.3%
+6.999 MiB
0.4%
164 MiB → 171 MiB
329 → 343
putMapEntries(Map, boolean)
java.util.HashMap
+4.3%
+6.999 MiB
0.4%
164 MiB → 171 MiB
329 → 343
<init>(Map)
java.util.HashMap
Change
Delta
%
Size
Samples
Function
Location
+2.4%
+202.999 MiB
21.8% → 22.3%
8.13 GiB → 8.33 GiB
16,653 → 17,059
computeDirectly()
org.renaissance.jdk.concurrent.JavaKMeans$AssignmentTask
+2.1%
+140.499 MiB
17.4% → 17.7%
6.48 GiB → 6.62 GiB
13,278 → 13,559
collectClusters(int[])
org.renaissance.jdk.concurrent.JavaKMeans$AssignmentTask
+140.6%
+93.499 MiB
0.2% → 0.4%
66.5 MiB → 160 MiB
133 → 320
apply(int)
org.renaissance.jdk.concurrent.JavaKMeans$$Lambda.0x00000008011258d8
+3.7%
+62.499 MiB
4.4% → 4.6%
1.65 GiB → 1.71 GiB
3,375 → 3,500
findNearestCentroid()
org.renaissance.jdk.concurrent.JavaKMeans$AssignmentTask
+41.6%
+28.499 MiB
0.2% → 0.3%
68.5 MiB → 97 MiB
137 → 194
vectorSum()
org.renaissance.jdk.concurrent.JavaKMeans$VectorSumTask
+41.6%
+28.499 MiB
0.2% → 0.3%
68.5 MiB → 97 MiB
137 → 194
computeDirectly()
org.renaissance.jdk.concurrent.JavaKMeans$VectorSumTask
+12.8%
+26.999 MiB
0.6%
211 MiB → 238 MiB
422 → 476
computeClusterAverages()
org.renaissance.jdk.concurrent.JavaKMeans$UpdateTask
+12.8%
+26.999 MiB
0.6%
211 MiB → 238 MiB
422 → 476
computeDirectly()
org.renaissance.jdk.concurrent.JavaKMeans$UpdateTask
+12.4%
+23.999 MiB
0.5% → 0.6%
193 MiB → 217 MiB
387 → 435
average(List)
org.renaissance.jdk.concurrent.JavaKMeans$UpdateTask
+17.8%
+17.499 MiB
0.3%
98.5 MiB → 116 MiB
197 → 232
lambda$collectClusters$0(Double[])
org.renaissance.jdk.concurrent.JavaKMeans$AssignmentTask
+17.8%
+17.499 MiB
0.3%
98.5 MiB → 116 MiB
197 → 232
apply(Object)
org.renaissance.jdk.concurrent.JavaKMeans$AssignmentTask$$Lambda.0x0000000801186b38
+14.0%
+12.499 MiB
0.2% → 0.3%
89.5 MiB → 102 MiB
179 → 204
add(double[], double[])
org.renaissance.jdk.concurrent.JavaKMeans$VectorSumTask
+14.0%
+12.499 MiB
0.2% → 0.3%
89.5 MiB → 102 MiB
179 → 204
combineResults(double[], double[])
org.renaissance.jdk.concurrent.JavaKMeans$VectorSumTask
+14.0%
+12.499 MiB
0.2% → 0.3%
89.5 MiB → 102 MiB
179 → 204
combineResults(Object, Object)
org.renaissance.jdk.concurrent.JavaKMeans$VectorSumTask
+4.0%
+7.499 MiB
0.5%
185 MiB → 193 MiB
371 → 386
createSubtask(int, int)
org.renaissance.jdk.concurrent.JavaKMeans$VectorSumTask
~0%
+7.261 MiB
99.4% → 99.5%
37.1 GiB
75,706 → 75,720
compute()
org.renaissance.jdk.concurrent.JavaKMeans$RangedTask
+47.1%
+3.999 MiB
<0.1%
8.5 MiB → 12.5 MiB
17 → 25
boxed(double[])
org.renaissance.jdk.concurrent.JavaKMeans$UpdateTask
+7.5%
+1.499 MiB
0.1%
20 MiB → 21.5 MiB
40 → 43
apply(int)
org.renaissance.jdk.concurrent.JavaKMeans$$Lambda.0x0000000801125d48
+7.5%
+1.499 MiB
0.1%
20 MiB → 21.5 MiB
40 → 43
lambda$generateData$4(int)
org.renaissance.jdk.concurrent.JavaKMeans
new
+1.499 MiB
0.0% → <0.1%
0 B → 1.5 MiB
0 → 3
selectBenchmarks(BenchmarkSuite, Seq)
org.renaissance.harness.RenaissanceSuite$
Functions with the largest decrease in total bytes allocated in the function and all its callees.
Change
Delta
%
Size
Samples
Function
Location
-0.8%
-235.738 MiB
75.6% → 75.0%
28.2 GiB → 28 GiB
57,505 → 57,033
lambda$merge$6(List, List)
org.renaissance.jdk.concurrent.JavaKMeans
-0.8%
-235.738 MiB
75.6% → 75.0%
28.2 GiB → 28 GiB
57,505 → 57,033
apply(Object, Object)
org.renaissance.jdk.concurrent.JavaKMeans$$Lambda.0x0000000801186fd0
-0.8%
-235.738 MiB
75.6% → 75.0%
28.2 GiB → 28 GiB
57,507 → 57,035
merge(Object, Object, BiFunction)
java.util.HashMap
-0.8%
-235.738 MiB
75.6% → 75.0%
28.2 GiB → 28 GiB
57,507 → 57,035
lambda$merge$7(Map, Object, List)
org.renaissance.jdk.concurrent.JavaKMeans
-0.8%
-235.738 MiB
75.6% → 75.0%
28.2 GiB → 28 GiB
57,507 → 57,035
accept(Object, Object)
org.renaissance.jdk.concurrent.JavaKMeans$$Lambda.0x0000000801186d88
-0.8%
-235.738 MiB
75.6% → 75.0%
28.2 GiB → 28 GiB
57,507 → 57,035
forEach(BiConsumer)
java.util.HashMap
-1.1%
-227.738 MiB
56.4% → 55.9%
21.1 GiB → 20.9 GiB
42,853 → 42,397
addAll(Collection)
java.util.ArrayList
removed
-224.35 MiB
0.6% → 0.0%
224 MiB → 0 B
443 → 0
invokeStatic(Object, Object)
java.lang.invoke.LambdaForm$DMH.0x0000007001004800
removed
-224.35 MiB
0.6% → 0.0%
224 MiB → 0 B
443 → 0
invoke(Object, Object, Object)
java.lang.invoke.LambdaForm$MH.0x0000007001009800
-0.8%
-222.738 MiB
76.2% → 75.7%
28.5 GiB → 28.2 GiB
57,983 → 57,537
merge(Map, Map)
org.renaissance.jdk.concurrent.JavaKMeans
-0.8%
-220.738 MiB
76.2% → 75.7%
28.5 GiB → 28.2 GiB
57,973 → 57,531
combineResults(Map, Map)
org.renaissance.jdk.concurrent.JavaKMeans$AssignmentTask
-0.8%
-220.738 MiB
76.2% → 75.7%
28.5 GiB → 28.2 GiB
57,973 → 57,531
combineResults(Object, Object)
org.renaissance.jdk.concurrent.JavaKMeans$AssignmentTask
-73.9%
-139.999 MiB
0.5% → 0.1%
189 MiB → 49.5 MiB
379 → 99
apply(int)
org.renaissance.jdk.concurrent.JavaKMeans$$Lambda.0x0000000801125b10
-0.3%
-115.627 MiB
91.0% → 90.8%
34 GiB → 33.9 GiB
69,295 → 69,063
copyOf(Object[], int)
java.util.Arrays
-1.4%
-106.238 MiB
20.4% → 20.1%
7.61 GiB → 7.5 GiB
15,275 → 15,062
lambda$run$0(int, List, int)
org.renaissance.jdk.concurrent.JavaKMeans
-1.4%
-106.238 MiB
20.4% → 20.1%
7.61 GiB → 7.5 GiB
15,275 → 15,062
call()
org.renaissance.jdk.concurrent.JavaKMeans$$Lambda.0x0000000801183d68
-1.4%
-106.238 MiB
20.4% → 20.1%
7.61 GiB → 7.5 GiB
15,275 → 15,062
exec()
java.util.concurrent.ForkJoinTask$AdaptedCallable
-1.1%
-85.738 MiB
20.8% → 20.6%
7.78 GiB → 7.7 GiB
15,634 → 15,462
invoke()
java.util.concurrent.ForkJoinTask
-0.4%
-84.627 MiB
52.5% → 52.3%
19.6 GiB → 19.5 GiB
39,833 → 39,663
grow(int)
java.util.ArrayList
-15.6%
-29.499 MiB
0.5% → 0.4%
189 MiB → 160 MiB
379 → 320
lambda$generateData$5(int, int, Random[], int)
org.renaissance.jdk.concurrent.JavaKMeans
Change
Delta
%
Size
Samples
Function
Location
-0.8%
-235.738 MiB
75.6% → 75.0%
28.2 GiB → 28 GiB
57,507 → 57,035
merge(Object, Object, BiFunction)
java.util.HashMap
-0.8%
-235.738 MiB
75.6% → 75.0%
28.2 GiB → 28 GiB
57,507 → 57,035
forEach(BiConsumer)
java.util.HashMap
-1.1%
-227.738 MiB
56.4% → 55.9%
21.1 GiB → 20.9 GiB
42,853 → 42,397
addAll(Collection)
java.util.ArrayList
removed
-224.35 MiB
0.6% → 0.0%
224 MiB → 0 B
443 → 0
invokeStatic(Object, Object)
java.lang.invoke.LambdaForm$DMH.0x0000007001004800
removed
-224.35 MiB
0.6% → 0.0%
224 MiB → 0 B
443 → 0
invoke(Object, Object, Object)
java.lang.invoke.LambdaForm$MH.0x0000007001009800
-0.3%
-115.627 MiB
91.0% → 90.8%
34 GiB → 33.9 GiB
69,295 → 69,063
copyOf(Object[], int)
java.util.Arrays
-1.4%
-106.238 MiB
20.4% → 20.1%
7.61 GiB → 7.5 GiB
15,275 → 15,062
exec()
java.util.concurrent.ForkJoinTask$AdaptedCallable
-1.1%
-85.738 MiB
20.8% → 20.6%
7.78 GiB → 7.7 GiB
15,634 → 15,462
invoke()
java.util.concurrent.ForkJoinTask
-0.4%
-84.627 MiB
52.5% → 52.3%
19.6 GiB → 19.5 GiB
39,833 → 39,663
grow(int)
java.util.ArrayList
-14.7%
-29.389 MiB
0.5% → 0.4%
200 MiB → 170 MiB
394 → 335
copyInto(Sink, Spliterator)
java.util.stream.AbstractPipeline
-14.5%
-28.889 MiB
0.5% → 0.4%
200 MiB → 171 MiB
394 → 336
wrapAndCopyInto(Sink, Spliterator)
java.util.stream.AbstractPipeline
-14.9%
-28.889 MiB
0.5% → 0.4%
194 MiB → 165 MiB
383 → 325
evaluateSequential(PipelineHelper, Spliterator)
java.util.stream.ReduceOps$ReduceOp
-14.9%
-28.889 MiB
0.5% → 0.4%
194 MiB → 165 MiB
383 → 325
evaluate(TerminalOp)
java.util.stream.AbstractPipeline
-14.9%
-28.889 MiB
0.5% → 0.4%
194 MiB → 165 MiB
383 → 325
collect(Collector)
java.util.stream.ReferencePipeline
-14.6%
-28.389 MiB
0.5% → 0.4%
194 MiB → 165 MiB
382 → 325
accept(int)
java.util.stream.IntPipeline$1$1
-14.6%
-28.389 MiB
0.5% → 0.4%
194 MiB → 165 MiB
382 → 325
forEachRemaining(IntConsumer)
java.util.stream.Streams$RangeIntSpliterator
-14.6%
-28.389 MiB
0.5% → 0.4%
194 MiB → 165 MiB
382 → 325
forEachRemaining(Consumer)
java.util.Spliterator$OfInt
-13.5%
-27.889 MiB
0.5%
207 MiB → 179 MiB
409 → 353
apply(Object)
scala.runtime.function.JProcedure1
-13.5%
-27.889 MiB
0.5%
207 MiB → 179 MiB
409 → 353
foreach(Function1)
scala.collection.immutable.List
-0.4%
-25.499 MiB
18.9% → 18.8%
7.05 GiB → 7.02 GiB
14,435 → 14,384
<init>(Collection)
java.util.ArrayList
Change
Delta
%
Size
Samples
Function
Location
-0.8%
-235.738 MiB
75.6% → 75.0%
28.2 GiB → 28 GiB
57,505 → 57,033
lambda$merge$6(List, List)
org.renaissance.jdk.concurrent.JavaKMeans
-0.8%
-235.738 MiB
75.6% → 75.0%
28.2 GiB → 28 GiB
57,505 → 57,033
apply(Object, Object)
org.renaissance.jdk.concurrent.JavaKMeans$$Lambda.0x0000000801186fd0
-0.8%
-235.738 MiB
75.6% → 75.0%
28.2 GiB → 28 GiB
57,507 → 57,035
lambda$merge$7(Map, Object, List)
org.renaissance.jdk.concurrent.JavaKMeans
-0.8%
-235.738 MiB
75.6% → 75.0%
28.2 GiB → 28 GiB
57,507 → 57,035
accept(Object, Object)
org.renaissance.jdk.concurrent.JavaKMeans$$Lambda.0x0000000801186d88
-0.8%
-222.738 MiB
76.2% → 75.7%
28.5 GiB → 28.2 GiB
57,983 → 57,537
merge(Map, Map)
org.renaissance.jdk.concurrent.JavaKMeans
-0.8%
-220.738 MiB
76.2% → 75.7%
28.5 GiB → 28.2 GiB
57,973 → 57,531
combineResults(Map, Map)
org.renaissance.jdk.concurrent.JavaKMeans$AssignmentTask
-0.8%
-220.738 MiB
76.2% → 75.7%
28.5 GiB → 28.2 GiB
57,973 → 57,531
combineResults(Object, Object)
org.renaissance.jdk.concurrent.JavaKMeans$AssignmentTask
-73.9%
-139.999 MiB
0.5% → 0.1%
189 MiB → 49.5 MiB
379 → 99
apply(int)
org.renaissance.jdk.concurrent.JavaKMeans$$Lambda.0x0000000801125b10
-1.4%
-106.238 MiB
20.4% → 20.1%
7.61 GiB → 7.5 GiB
15,275 → 15,062
lambda$run$0(int, List, int)
org.renaissance.jdk.concurrent.JavaKMeans
-1.4%
-106.238 MiB
20.4% → 20.1%
7.61 GiB → 7.5 GiB
15,275 → 15,062
call()
org.renaissance.jdk.concurrent.JavaKMeans$$Lambda.0x0000000801183d68
-15.6%
-29.499 MiB
0.5% → 0.4%
189 MiB → 160 MiB
379 → 320
lambda$generateData$5(int, int, Random[], int)
org.renaissance.jdk.concurrent.JavaKMeans
-14.9%
-28.889 MiB
0.5% → 0.4%
194 MiB → 165 MiB
383 → 325
setUpBeforeAll(BenchmarkContext)
org.renaissance.jdk.concurrent.FjKmeans
-13.7%
-28.389 MiB
0.5%
207 MiB → 179 MiB
409 → 352
executeBenchmark()
org.renaissance.harness.ExecutionDriver
-14.6%
-28.389 MiB
0.5% → 0.4%
194 MiB → 165 MiB
382 → 325
generateData(int, int, int)
org.renaissance.jdk.concurrent.JavaKMeans
-13.5%
-27.889 MiB
0.5%
207 MiB → 179 MiB
409 → 353
runBenchmarks$$anonfun$1(BenchmarkSuite, Plugin$ExecutionPolicy, EventDispatcher, Buffer, long, BenchmarkDescriptor)
org.renaissance.harness.RenaissanceSuite$
-13.5%
-27.889 MiB
0.5%
207 MiB → 179 MiB
409 → 353
applyVoid(Object)
org.renaissance.harness.RenaissanceSuite$$$Lambda.0x000000080111efe0
-13.5%
-27.889 MiB
0.5%
207 MiB → 179 MiB
409 → 353
runBenchmarks(BenchmarkSuite, Seq, Plugin$ExecutionPolicy, EventDispatcher)
org.renaissance.harness.RenaissanceSuite$
-11.1%
-24.889 MiB
0.6% → 0.5%
225 MiB → 200 MiB
444 → 394
loadAndInvokeHarnessClass(ModuleLoader, String, String[])
org.renaissance.core.Launcher
-11.1%
-24.889 MiB
0.6% → 0.5%
224 MiB → 199 MiB
443 → 393
main(String[])
org.renaissance.harness.RenaissanceSuite
-10.6%
-23.889 MiB
0.6% → 0.5%
225 MiB → 201 MiB
444 → 396
launchHarnessClass(String, String[])
org.renaissance.core.Launcher
Retained heap profile diff
Retained 8.47 MiB → 6.33 MiB (-2.138 MiB, -25.3%) over 320 objects → 193 objects (27.1 KiB → 33.6 KiB per object).
Category
Change
Delta
%
Size
Objects
Standard library
-25.2%
-2.131 MiB
99.9% → 100.0%
8.46 MiB → 6.33 MiB
271 → 145
Ours
-79.9%
-7.57 KiB
0.1% → <0.1%
9.48 KiB → 1.91 KiB
49 → 48
Functions with the largest increase in bytes retained directly in the function body, excluding callees.
Change
Delta
%
Size
Objects
Function
Location
+7.5%
+120 B
<0.1%
1.56 KiB → 1.68 KiB
40 → 43
lambda$generateData$4(int)
org.renaissance.jdk.concurrent.JavaKMeans
new
+96 B
0.0% → <0.1%
0 B → 96 B
0 → 3
putVal(Object, Object, boolean)
java.util.concurrent.ConcurrentHashMap
new
+96 B
0.0% → <0.1%
0 B → 96 B
0 → 3
newNode(int, Object, Object, HashMap$Node)
java.util.HashMap
new
+56 B
0.0% → <0.1%
0 B → 56 B
0 → 1
vectorSum()
org.renaissance.jdk.concurrent.JavaKMeans$VectorSumTask
new
+56 B
0.0% → <0.1%
0 B → 56 B
0 → 1
add(double[], double[])
org.renaissance.jdk.concurrent.JavaKMeans$VectorSumTask
new
+48 B
0.0% → <0.1%
0 B → 48 B
0 → 1
merge(Map, Map)
org.renaissance.jdk.concurrent.JavaKMeans
new
+48 B
0.0% → <0.1%
0 B → 48 B
0 → 1
makeVarargsCollector(MethodHandle, Class)
java.lang.invoke.MethodHandleImpl
new
+32 B
0.0% → <0.1%
0 B → 32 B
0 → 1
transfer(ConcurrentHashMap$Node[], ConcurrentHashMap$Node[])
java.util.concurrent.ConcurrentHashMap
Change
Delta
%
Size
Objects
Function
Location
new
+96 B
0.0% → <0.1%
0 B → 96 B
0 → 3
putVal(Object, Object, boolean)
java.util.concurrent.ConcurrentHashMap
new
+96 B
0.0% → <0.1%
0 B → 96 B
0 → 3
newNode(int, Object, Object, HashMap$Node)
java.util.HashMap
new
+48 B
0.0% → <0.1%
0 B → 48 B
0 → 1
makeVarargsCollector(MethodHandle, Class)
java.lang.invoke.MethodHandleImpl
new
+32 B
0.0% → <0.1%
0 B → 32 B
0 → 1
transfer(ConcurrentHashMap$Node[], ConcurrentHashMap$Node[])
java.util.concurrent.ConcurrentHashMap
Functions with the largest decrease in bytes retained directly in the function body, excluding callees.
Change
Delta
%
Size
Objects
Function
Location
-30.5%
-1.875 MiB
72.5% → 67.4%
6.14 MiB → 4.26 MiB
127 → 37
copyOf(Object[], int)
java.util.Arrays
removed
-260.726 KiB
3.0% → 0.0%
261 KiB → 0 B
2 → 0
initCEN(int, ZipCoder)
java.util.zip.ZipFile$Source
removed
-7.687 KiB
0.1% → 0.0%
7.69 KiB → 0 B
4 → 0
findNearestCentroid()
org.renaissance.jdk.concurrent.JavaKMeans$AssignmentTask
-25.6%
-816 B
<0.1%
3.12 KiB → 2.32 KiB
133 → 99
valueOf(double)
java.lang.Double
removed
-240 B
<0.1% → 0.0%
240 B → 0 B
1 → 0
load(DataInputStream)
sun.util.calendar.ZoneInfoFile
removed
-112 B
<0.1% → 0.0%
112 B → 0 B
2 → 0
createSubtask(int, int)
org.renaissance.jdk.concurrent.JavaKMeans$AssignmentTask
removed
-56 B
<0.1% → 0.0%
56 B → 0 B
1 → 0
grow(int)
java.util.ArrayList
removed
-48 B
<0.1% → 0.0%
48 B → 0 B
1 → 0
collectClusters(int[])
org.renaissance.jdk.concurrent.JavaKMeans$AssignmentTask
removed
-40 B
<0.1% → 0.0%
40 B → 0 B
2 → 0
read(InputStream, String)
java.util.jar.Manifest
removed
-40 B
<0.1% → 0.0%
40 B → 0 B
1 → 0
newNode(int, Object, Object, HashMap$Node)
java.util.LinkedHashMap
removed
-40 B
<0.1% → 0.0%
40 B → 0 B
1 → 0
makeImpl(Class, Class[], boolean)
java.lang.invoke.MethodType
removed
-24 B
<0.1% → 0.0%
24 B → 0 B
1 → 0
parseName(byte[], int)
java.util.jar.Manifest
removed
-16 B
<0.1% → 0.0%
16 B → 0 B
1 → 0
entrySet()
java.util.HashMap
Change
Delta
%
Size
Objects
Function
Location
-30.5%
-1.875 MiB
72.5% → 67.4%
6.14 MiB → 4.26 MiB
127 → 37
copyOf(Object[], int)
java.util.Arrays
removed
-260.726 KiB
3.0% → 0.0%
261 KiB → 0 B
2 → 0
initCEN(int, ZipCoder)
java.util.zip.ZipFile$Source
-25.6%
-816 B
<0.1%
3.12 KiB → 2.32 KiB
133 → 99
valueOf(double)
java.lang.Double
removed
-240 B
<0.1% → 0.0%
240 B → 0 B
1 → 0
load(DataInputStream)
sun.util.calendar.ZoneInfoFile
removed
-56 B
<0.1% → 0.0%
56 B → 0 B
1 → 0
grow(int)
java.util.ArrayList
removed
-40 B
<0.1% → 0.0%
40 B → 0 B
2 → 0
read(InputStream, String)
java.util.jar.Manifest
removed
-40 B
<0.1% → 0.0%
40 B → 0 B
1 → 0
newNode(int, Object, Object, HashMap$Node)
java.util.LinkedHashMap
removed
-40 B
<0.1% → 0.0%
40 B → 0 B
1 → 0
makeImpl(Class, Class[], boolean)
java.lang.invoke.MethodType
removed
-24 B
<0.1% → 0.0%
24 B → 0 B
1 → 0
parseName(byte[], int)
java.util.jar.Manifest
removed
-16 B
<0.1% → 0.0%
16 B → 0 B
1 → 0
entrySet()
java.util.HashMap
Functions with the largest increase in total bytes retained in the function and all its callees.
Change
Delta
%
Size
Objects
Function
Location
new
+2.064 MiB
0.0% → 32.6%
0 B → 2.06 MiB
0 → 148
invokeStatic(Object, Object)
java.lang.invoke.LambdaForm$DMH.0x0000000801004800
new
+2.064 MiB
0.0% → 32.6%
0 B → 2.06 MiB
0 → 148
invoke(Object, Object, Object)
java.lang.invoke.LambdaForm$MH.0x0000000801009800
+18.3%
+504.203 KiB
31.9% → 50.4%
2.7 MiB → 3.19 MiB
18 → 14
invoke()
java.util.concurrent.ForkJoinTask
+18.3%
+504.14 KiB
31.9% → 50.4%
2.7 MiB → 3.19 MiB
17 → 12
lambda$run$0(int, List, int)
org.renaissance.jdk.concurrent.JavaKMeans
+18.3%
+504.14 KiB
31.9% → 50.4%
2.7 MiB → 3.19 MiB
17 → 12
call()
org.renaissance.jdk.concurrent.JavaKMeans$$Lambda.0x0000000801183d68
+18.3%
+504.14 KiB
31.9% → 50.4%
2.7 MiB → 3.19 MiB
17 → 12
exec()
java.util.concurrent.ForkJoinTask$AdaptedCallable
+16.8%
+207.539 KiB
14.2% → 22.2%
1.2 MiB → 1.41 MiB
98 → 29
awaitDone(int, long)
java.util.concurrent.ForkJoinTask
+16.8%
+207.539 KiB
14.2% → 22.2%
1.2 MiB → 1.41 MiB
98 → 29
join()
java.util.concurrent.ForkJoinTask
+15.2%
+186.242 KiB
14.1% → 21.8%
1.2 MiB → 1.38 MiB
97 → 27
tryRemoveAndExec(ForkJoinTask, boolean)
java.util.concurrent.ForkJoinPool$WorkQueue
+16.7%
+112.359 KiB
7.8% → 12.1%
674 KiB → 786 KiB
21 → 9
<init>(Collection)
java.util.ArrayList
+148.2%
+56.89 KiB
0.4% → 1.5%
38.4 KiB → 95.3 KiB
10 → 9
helpJoin(ForkJoinTask, ForkJoinPool$WorkQueue, boolean)
java.util.concurrent.ForkJoinPool
new
+128 B
0.0% → <0.1%
0 B → 128 B
0 → 4
putVal(Object, Object, boolean)
java.util.concurrent.ConcurrentHashMap
+7.5%
+120 B
<0.1%
1.56 KiB → 1.68 KiB
40 → 43
lambda$generateData$4(int)
org.renaissance.jdk.concurrent.JavaKMeans
+7.5%
+120 B
<0.1%
1.56 KiB → 1.68 KiB
40 → 43
apply(int)
org.renaissance.jdk.concurrent.JavaKMeans$$Lambda.0x0000000801125d48
+7.5%
+120 B
<0.1%
1.56 KiB → 1.68 KiB
40 → 43
<init>(long, IntFunction)
java.util.stream.Nodes$ArrayNode
+7.5%
+120 B
<0.1%
1.56 KiB → 1.68 KiB
40 → 43
<init>(long, IntFunction)
java.util.stream.Nodes$FixedNodeBuilder
+7.5%
+120 B
<0.1%
1.56 KiB → 1.68 KiB
40 → 43
builder(long, IntFunction)
java.util.stream.Nodes
+7.5%
+120 B
<0.1%
1.56 KiB → 1.68 KiB
40 → 43
makeNodeBuilder(long, IntFunction)
java.util.stream.ReferencePipeline
new
+96 B
0.0% → <0.1%
0 B → 96 B
0 → 3
putIfAbsent(Object, Object)
java.util.concurrent.ConcurrentHashMap
new
+96 B
0.0% → <0.1%
0 B → 96 B
0 → 3
getClassLoadingLock(String)
java.lang.ClassLoader
Change
Delta
%
Size
Objects
Function
Location
new
+2.064 MiB
0.0% → 32.6%
0 B → 2.06 MiB
0 → 148
invokeStatic(Object, Object)
java.lang.invoke.LambdaForm$DMH.0x0000000801004800
new
+2.064 MiB
0.0% → 32.6%
0 B → 2.06 MiB
0 → 148
invoke(Object, Object, Object)
java.lang.invoke.LambdaForm$MH.0x0000000801009800
+18.3%
+504.203 KiB
31.9% → 50.4%
2.7 MiB → 3.19 MiB
18 → 14
invoke()
java.util.concurrent.ForkJoinTask
+18.3%
+504.14 KiB
31.9% → 50.4%
2.7 MiB → 3.19 MiB
17 → 12
exec()
java.util.concurrent.ForkJoinTask$AdaptedCallable
+16.8%
+207.539 KiB
14.2% → 22.2%
1.2 MiB → 1.41 MiB
98 → 29
awaitDone(int, long)
java.util.concurrent.ForkJoinTask
+16.8%
+207.539 KiB
14.2% → 22.2%
1.2 MiB → 1.41 MiB
98 → 29
join()
java.util.concurrent.ForkJoinTask
+15.2%
+186.242 KiB
14.1% → 21.8%
1.2 MiB → 1.38 MiB
97 → 27
tryRemoveAndExec(ForkJoinTask, boolean)
java.util.concurrent.ForkJoinPool$WorkQueue
+16.7%
+112.359 KiB
7.8% → 12.1%
674 KiB → 786 KiB
21 → 9
<init>(Collection)
java.util.ArrayList
+148.2%
+56.89 KiB
0.4% → 1.5%
38.4 KiB → 95.3 KiB
10 → 9
helpJoin(ForkJoinTask, ForkJoinPool$WorkQueue, boolean)
java.util.concurrent.ForkJoinPool
new
+128 B
0.0% → <0.1%
0 B → 128 B
0 → 4
putVal(Object, Object, boolean)
java.util.concurrent.ConcurrentHashMap
+7.5%
+120 B
<0.1%
1.56 KiB → 1.68 KiB
40 → 43
<init>(long, IntFunction)
java.util.stream.Nodes$ArrayNode
+7.5%
+120 B
<0.1%
1.56 KiB → 1.68 KiB
40 → 43
<init>(long, IntFunction)
java.util.stream.Nodes$FixedNodeBuilder
+7.5%
+120 B
<0.1%
1.56 KiB → 1.68 KiB
40 → 43
builder(long, IntFunction)
java.util.stream.Nodes
+7.5%
+120 B
<0.1%
1.56 KiB → 1.68 KiB
40 → 43
makeNodeBuilder(long, IntFunction)
java.util.stream.ReferencePipeline
new
+96 B
0.0% → <0.1%
0 B → 96 B
0 → 3
putIfAbsent(Object, Object)
java.util.concurrent.ConcurrentHashMap
new
+96 B
0.0% → <0.1%
0 B → 96 B
0 → 3
getClassLoadingLock(String)
java.lang.ClassLoader
new
+96 B
0.0% → <0.1%
0 B → 96 B
0 → 3
newNode(int, Object, Object, HashMap$Node)
java.util.HashMap
new
+64 B
0.0% → <0.1%
0 B → 64 B
0 → 2
loadClassOrNull(String, boolean)
jdk.internal.loader.BuiltinClassLoader
new
+64 B
0.0% → <0.1%
0 B → 64 B
0 → 2
loadClass(String, boolean)
jdk.internal.loader.BuiltinClassLoader
new
+64 B
0.0% → <0.1%
0 B → 64 B
0 → 2
loadClass(String, boolean)
jdk.internal.loader.ClassLoaders$AppClassLoader
Functions with the largest decrease in total bytes retained in the function and all its callees.
Change
Delta
%
Size
Objects
Function
Location
removed
-2.32 MiB
27.4% → 0.0%
2.32 MiB → 0 B
181 → 0
invokeStatic(Object, Object)
java.lang.invoke.LambdaForm$DMH.0x0000007001004800
removed
-2.32 MiB
27.4% → 0.0%
2.32 MiB → 0 B
181 → 0
invoke(Object, Object, Object)
java.lang.invoke.LambdaForm$MH.0x0000007001009800
-36.1%
-1.978 MiB
64.6% → 55.2%
5.47 MiB → 3.5 MiB
90 → 25
addAll(Collection)
java.util.ArrayList
-30.6%
-1.883 MiB
72.6% → 67.4%
6.15 MiB → 4.26 MiB
137 → 41
compute()
org.renaissance.jdk.concurrent.JavaKMeans$RangedTask
-30.6%
-1.883 MiB
72.6% → 67.4%
6.15 MiB → 4.26 MiB
137 → 41
exec()
java.util.concurrent.RecursiveTask
-30.6%
-1.883 MiB
72.6% → 67.4%
6.15 MiB → 4.26 MiB
137 → 41
doExec()
java.util.concurrent.ForkJoinTask
-30.6%
-1.883 MiB
72.6% → 67.4%
6.15 MiB → 4.26 MiB
137 → 41
topLevelExec(ForkJoinTask, ForkJoinPool$WorkQueue)
java.util.concurrent.ForkJoinPool$WorkQueue
-30.6%
-1.883 MiB
72.6% → 67.4%
6.15 MiB → 4.26 MiB
137 → 41
scan(ForkJoinPool$WorkQueue, int, int)
java.util.concurrent.ForkJoinPool
-30.6%
-1.883 MiB
72.6% → 67.4%
6.15 MiB → 4.26 MiB
137 → 41
runWorker(ForkJoinPool$WorkQueue)
java.util.concurrent.ForkJoinPool
-30.6%
-1.883 MiB
72.6% → 67.4%
6.15 MiB → 4.26 MiB
137 → 41
run()
java.util.concurrent.ForkJoinWorkerThread
-22.9%
-1.875 MiB
96.8% → 99.9%
8.2 MiB → 6.32 MiB
128 → 38
copyOf(Object[], int)
java.util.Arrays
-30.5%
-1.868 MiB
72.4% → 67.3%
6.13 MiB → 4.26 MiB
111 → 34
lambda$merge$6(List, List)
org.renaissance.jdk.concurrent.JavaKMeans
-30.5%
-1.868 MiB
72.4% → 67.3%
6.13 MiB → 4.26 MiB
111 → 34
apply(Object, Object)
org.renaissance.jdk.concurrent.JavaKMeans$$Lambda.0x0000000801186fd0
-30.5%
-1.868 MiB
72.4% → 67.3%
6.13 MiB → 4.26 MiB
111 → 34
merge(Object, Object, BiFunction)
java.util.HashMap
-30.5%
-1.868 MiB
72.4% → 67.3%
6.13 MiB → 4.26 MiB
111 → 34
lambda$merge$7(Map, Object, List)
org.renaissance.jdk.concurrent.JavaKMeans
-30.5%
-1.868 MiB
72.4% → 67.3%
6.13 MiB → 4.26 MiB
111 → 34
accept(Object, Object)
org.renaissance.jdk.concurrent.JavaKMeans$$Lambda.0x0000000801186d88
-30.5%
-1.868 MiB
72.4% → 67.3%
6.13 MiB → 4.26 MiB
111 → 34
forEach(BiConsumer)
java.util.HashMap
-30.5%
-1.868 MiB
72.4% → 67.4%
6.13 MiB → 4.26 MiB
112 → 35
merge(Map, Map)
org.renaissance.jdk.concurrent.JavaKMeans
-30.5%
-1.868 MiB
72.4% → 67.4%
6.13 MiB → 4.26 MiB
112 → 35
combineResults(Map, Map)
org.renaissance.jdk.concurrent.JavaKMeans$AssignmentTask
-30.5%
-1.868 MiB
72.4% → 67.4%
6.13 MiB → 4.26 MiB
112 → 35
combineResults(Object, Object)
org.renaissance.jdk.concurrent.JavaKMeans$AssignmentTask
Change
Delta
%
Size
Objects
Function
Location
removed
-2.32 MiB
27.4% → 0.0%
2.32 MiB → 0 B
181 → 0
invokeStatic(Object, Object)
java.lang.invoke.LambdaForm$DMH.0x0000007001004800
removed
-2.32 MiB
27.4% → 0.0%
2.32 MiB → 0 B
181 → 0
invoke(Object, Object, Object)
java.lang.invoke.LambdaForm$MH.0x0000007001009800
-36.1%
-1.978 MiB
64.6% → 55.2%
5.47 MiB → 3.5 MiB
90 → 25
addAll(Collection)
java.util.ArrayList
-30.6%
-1.883 MiB
72.6% → 67.4%
6.15 MiB → 4.26 MiB
137 → 41
exec()
java.util.concurrent.RecursiveTask
-30.6%
-1.883 MiB
72.6% → 67.4%
6.15 MiB → 4.26 MiB
137 → 41
doExec()
java.util.concurrent.ForkJoinTask
-30.6%
-1.883 MiB
72.6% → 67.4%
6.15 MiB → 4.26 MiB
137 → 41
topLevelExec(ForkJoinTask, ForkJoinPool$WorkQueue)
java.util.concurrent.ForkJoinPool$WorkQueue
-30.6%
-1.883 MiB
72.6% → 67.4%
6.15 MiB → 4.26 MiB
137 → 41
scan(ForkJoinPool$WorkQueue, int, int)
java.util.concurrent.ForkJoinPool
-30.6%
-1.883 MiB
72.6% → 67.4%
6.15 MiB → 4.26 MiB
137 → 41
runWorker(ForkJoinPool$WorkQueue)
java.util.concurrent.ForkJoinPool
-30.6%
-1.883 MiB
72.6% → 67.4%
6.15 MiB → 4.26 MiB
137 → 41
run()
java.util.concurrent.ForkJoinWorkerThread
-22.9%
-1.875 MiB
96.8% → 99.9%
8.2 MiB → 6.32 MiB
128 → 38
copyOf(Object[], int)
java.util.Arrays
-30.5%
-1.868 MiB
72.4% → 67.3%
6.13 MiB → 4.26 MiB
111 → 34
merge(Object, Object, BiFunction)
java.util.HashMap
-30.5%
-1.868 MiB
72.4% → 67.3%
6.13 MiB → 4.26 MiB
111 → 34
forEach(BiConsumer)
java.util.HashMap
-28.9%
-1.817 MiB
74.3% → 70.7%
6.29 MiB → 4.48 MiB
77 → 18
grow(int)
java.util.ArrayList
-11.0%
-261.367 KiB
27.4% → 32.6%
2.32 MiB → 2.06 MiB
181 → 148
invokeExact_MT(Object, Object, Object, Object)
java.lang.invoke.Invokers$Holder
-11.0%
-261.367 KiB
27.4% → 32.6%
2.32 MiB → 2.06 MiB
181 → 148
invokeImpl(Object, Object[])
jdk.internal.reflect.DirectMethodHandleAccessor
-11.0%
-261.367 KiB
27.4% → 32.6%
2.32 MiB → 2.06 MiB
181 → 148
invoke(Object, Object[])
jdk.internal.reflect.DirectMethodHandleAccessor
-11.0%
-261.367 KiB
27.4% → 32.6%
2.32 MiB → 2.06 MiB
181 → 148
invoke(Object, Object[])
java.lang.reflect.Method
removed
-260.789 KiB
3.0% → 0.0%
261 KiB → 0 B
5 → 0
run()
java.net.URLClassLoader$1
removed
-260.789 KiB
3.0% → 0.0%
261 KiB → 0 B
5 → 0
executePrivileged(PrivilegedExceptionAction, AccessControlContext, Class)
java.security.AccessController
removed
-260.789 KiB
3.0% → 0.0%
261 KiB → 0 B
5 → 0
doPrivileged(PrivilegedExceptionAction, AccessControlContext)
java.security.AccessController