-
Notifications
You must be signed in to change notification settings - Fork 0
Collect
d59498a4a95625ccf8033f69a0514e3dfac8dfe5
BenchmarkDotNet v0.14.0, Ubuntu 24.04.4 LTS (Noble Numbat)
AMD EPYC 7763, 1 CPU, 4 logical and 2 physical cores
.NET SDK 10.0.302
[Host] : .NET 9.0.18 (9.0.1826.31522), X64 RyuJIT AVX2
DefaultJob : .NET 9.0.18 (9.0.1826.31522), X64 RyuJIT AVX2
CollectCWTEmpty
create a cwt that has 10000 dead keys. (create an array that holds 10000 objects to keep the same as below test.)
(still not the same as below test.)
| Method | Mean | Error | StdDev |
|---|---|---|---|
| GC0 | 58.31 μs | 2.631 μs | 7.757 μs |
| GC1 | 63.02 μs | 2.880 μs | 8.491 μs |
| GC2 | 204.67 μs | 4.020 μs | 5.084 μs |
CollectCWT
create a cwt that has 10000 keys. (create an array that holds 10000 objects to keep keys alive.)
| Method | Mean | Error | StdDev |
|---|---|---|---|
| GC0 | 175.0 μs | 3.48 μs | 6.00 μs |
| GC1 | 172.0 μs | 3.21 μs | 4.60 μs |
| GC2 | 441.7 μs | 7.52 μs | 7.03 μs |
CollectArray
create arrays that total length is 100_000 and have 10000 objects. (create an array that holds 10000 objects to keep the same as above test.)
| Method | Mean | Error | StdDev | Median |
|---|---|---|---|---|
| GC0 | 41.24 μs | 2.794 μs | 8.239 μs | 39.15 μs |
| GC1 | 41.70 μs | 2.313 μs | 6.820 μs | 39.17 μs |
| GC2 | 407.02 μs | 6.748 μs | 6.313 μs | 405.63 μs |
CollectArrayLOH
create an array that length is 100_000 and has 10000 objects. (create an array that holds 10000 objects to keep the same as above test.)
| Method | Mean | Error | StdDev | Median |
|---|---|---|---|---|
| GC0 | 40.30 μs | 2.728 μs | 8.044 μs | 36.86 μs |
| GC1 | 41.14 μs | 2.015 μs | 5.847 μs | 40.13 μs |
| GC2 | 298.16 μs | 5.949 μs | 8.720 μs | 297.88 μs |
// * Detailed results *
CollectCWTEmpty.GC0: DefaultJob
Runtime = .NET 9.0.18 (9.0.1826.31522), X64 RyuJIT AVX2; GC = Concurrent Workstation
Mean = 58.307 μs, StdErr = 0.776 μs (1.33%), N = 100, StdDev = 7.757 μs
Min = 47.843 μs, Q1 = 51.417 μs, Median = 56.790 μs, Q3 = 64.040 μs, Max = 75.706 μs
IQR = 12.623 μs, LowerFence = 32.482 μs, UpperFence = 82.974 μs
ConfidenceInterval = [55.676 μs; 60.937 μs] (CI 99.9%), Margin = 2.631 μs (4.51% of Mean)
Skewness = 0.56, Kurtosis = 2.03, MValue = 3
-------------------- Histogram --------------------
[45.649 μs ; 49.353 μs) | @@@@
[49.353 μs ; 53.739 μs) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[53.739 μs ; 58.371 μs) | @@@@@@@@
[58.371 μs ; 62.757 μs) | @@@@@@@@@@@@@@@@@@@@
[62.757 μs ; 65.264 μs) | @@@@@
[65.264 μs ; 70.731 μs) | @@@@@@@@@@@@@
[70.731 μs ; 75.118 μs) | @@@@@@@@@
[75.118 μs ; 77.900 μs) | @
CollectCWTEmpty.GC1: DefaultJob
Runtime = .NET 9.0.18 (9.0.1826.31522), X64 RyuJIT AVX2; GC = Concurrent Workstation
Mean = 63.016 μs, StdErr = 0.849 μs (1.35%), N = 100, StdDev = 8.491 μs
Min = 48.768 μs, Q1 = 55.878 μs, Median = 63.835 μs, Q3 = 69.166 μs, Max = 80.746 μs
IQR = 13.288 μs, LowerFence = 35.945 μs, UpperFence = 89.099 μs
ConfidenceInterval = [60.136 μs; 65.896 μs] (CI 99.9%), Margin = 2.880 μs (4.57% of Mean)
Skewness = 0.06, Kurtosis = 1.94, MValue = 3.58
-------------------- Histogram --------------------
[48.592 μs ; 53.394 μs) | @@@@@@@@@@@@@@@@@@@@
[53.394 μs ; 58.402 μs) | @@@@@@@@@@@@@@@@@
[58.402 μs ; 63.355 μs) | @@@@@@@@
[63.355 μs ; 68.157 μs) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@
[68.157 μs ; 72.776 μs) | @@@@@@@@@@
[72.776 μs ; 77.578 μs) | @@@@@@@@@@@@@@@
[77.578 μs ; 83.147 μs) | @@
CollectCWTEmpty.GC2: DefaultJob
Runtime = .NET 9.0.18 (9.0.1826.31522), X64 RyuJIT AVX2; GC = Concurrent Workstation
Mean = 204.666 μs, StdErr = 1.060 μs (0.52%), N = 23, StdDev = 5.084 μs
Min = 196.592 μs, Q1 = 199.494 μs, Median = 206.163 μs, Q3 = 208.528 μs, Max = 213.688 μs
IQR = 9.034 μs, LowerFence = 185.943 μs, UpperFence = 222.079 μs
ConfidenceInterval = [200.647 μs; 208.686 μs] (CI 99.9%), Margin = 4.020 μs (1.96% of Mean)
Skewness = -0.06, Kurtosis = 1.67, MValue = 2.6
-------------------- Histogram --------------------
[195.701 μs ; 200.394 μs) | @@@@@@@
[200.394 μs ; 205.879 μs) | @@@@
[205.879 μs ; 210.571 μs) | @@@@@@@@@@
[210.571 μs ; 216.034 μs) | @@
// * Summary *
BenchmarkDotNet v0.14.0, Ubuntu 24.04.4 LTS (Noble Numbat)
AMD EPYC 7763, 1 CPU, 4 logical and 2 physical cores
.NET SDK 10.0.302
[Host] : .NET 9.0.18 (9.0.1826.31522), X64 RyuJIT AVX2
DefaultJob : .NET 9.0.18 (9.0.1826.31522), X64 RyuJIT AVX2
| Method | Mean | Error | StdDev |
|------- |----------:|---------:|---------:|
| GC0 | 58.31 μs | 2.631 μs | 7.757 μs |
| GC1 | 63.02 μs | 2.880 μs | 8.491 μs |
| GC2 | 204.67 μs | 4.020 μs | 5.084 μs |
// * Warnings *
MultimodalDistribution
CollectCWTEmpty.GC0: Default -> It seems that the distribution can have several modes (mValue = 3)
CollectCWTEmpty.GC1: Default -> It seems that the distribution is bimodal (mValue = 3.58)
// * Legends *
Mean : Arithmetic mean of all measurements
Error : Half of 99.9% confidence interval
StdDev : Standard deviation of all measurements
1 μs : 1 Microsecond (0.000001 sec)
// ***** BenchmarkRunner: End *****
Run time: 00:03:11 (191.04 sec), executed benchmarks: 3
Global total time: 00:03:17 (197.77 sec), executed benchmarks: 3
// * Artifacts cleanup *
Artifacts cleanup is finished
// * Detailed results *
CollectCWT.GC0: DefaultJob
Runtime = .NET 9.0.18 (9.0.1826.31522), X64 RyuJIT AVX2; GC = Concurrent Workstation
Mean = 174.955 μs, StdErr = 0.974 μs (0.56%), N = 38, StdDev = 6.001 μs
Min = 161.152 μs, Q1 = 171.228 μs, Median = 174.756 μs, Q3 = 178.744 μs, Max = 187.966 μs
IQR = 7.516 μs, LowerFence = 159.954 μs, UpperFence = 190.018 μs
ConfidenceInterval = [171.476 μs; 178.434 μs] (CI 99.9%), Margin = 3.479 μs (1.99% of Mean)
Skewness = -0.07, Kurtosis = 2.67, MValue = 2.4
-------------------- Histogram --------------------
[159.390 μs ; 164.075 μs) | @@
[164.075 μs ; 171.172 μs) | @@@@@@@
[171.172 μs ; 175.857 μs) | @@@@@@@@@@@@@@@
[175.857 μs ; 179.922 μs) | @@@@@
[179.922 μs ; 185.623 μs) | @@@@@@@@
[185.623 μs ; 190.309 μs) | @
CollectCWT.GC1: DefaultJob
Runtime = .NET 9.0.18 (9.0.1826.31522), X64 RyuJIT AVX2; GC = Concurrent Workstation
Mean = 171.967 μs, StdErr = 0.869 μs (0.51%), N = 28, StdDev = 4.599 μs
Min = 162.205 μs, Q1 = 168.963 μs, Median = 172.161 μs, Q3 = 174.873 μs, Max = 179.755 μs
IQR = 5.910 μs, LowerFence = 160.098 μs, UpperFence = 183.738 μs
ConfidenceInterval = [168.760 μs; 175.174 μs] (CI 99.9%), Margin = 3.207 μs (1.86% of Mean)
Skewness = -0.25, Kurtosis = 2.41, MValue = 2
-------------------- Histogram --------------------
[160.217 μs ; 165.452 μs) | @@
[165.452 μs ; 170.166 μs) | @@@@@@
[170.166 μs ; 174.142 μs) | @@@@@@@@@@@@
[174.142 μs ; 179.852 μs) | @@@@@@@@
CollectCWT.GC2: DefaultJob
Runtime = .NET 9.0.18 (9.0.1826.31522), X64 RyuJIT AVX2; GC = Concurrent Workstation
Mean = 441.686 μs, StdErr = 1.816 μs (0.41%), N = 15, StdDev = 7.034 μs
Min = 430.910 μs, Q1 = 436.085 μs, Median = 439.618 μs, Q3 = 446.623 μs, Max = 454.809 μs
IQR = 10.537 μs, LowerFence = 420.280 μs, UpperFence = 462.428 μs
ConfidenceInterval = [434.166 μs; 449.205 μs] (CI 99.9%), Margin = 7.520 μs (1.70% of Mean)
Skewness = 0.23, Kurtosis = 1.73, MValue = 2
-------------------- Histogram --------------------
[427.166 μs ; 440.700 μs) | @@@@@@@@
[440.700 μs ; 458.552 μs) | @@@@@@@
// * Summary *
BenchmarkDotNet v0.14.0, Ubuntu 24.04.4 LTS (Noble Numbat)
AMD EPYC 7763, 1 CPU, 4 logical and 2 physical cores
.NET SDK 10.0.302
[Host] : .NET 9.0.18 (9.0.1826.31522), X64 RyuJIT AVX2
DefaultJob : .NET 9.0.18 (9.0.1826.31522), X64 RyuJIT AVX2
| Method | Mean | Error | StdDev |
|------- |---------:|--------:|--------:|
| GC0 | 175.0 μs | 3.48 μs | 6.00 μs |
| GC1 | 172.0 μs | 3.21 μs | 4.60 μs |
| GC2 | 441.7 μs | 7.52 μs | 7.03 μs |
// * Hints *
Outliers
CollectCWT.GC1: Default -> 1 outlier was removed (185.54 μs)
// * Legends *
Mean : Arithmetic mean of all measurements
Error : Half of 99.9% confidence interval
StdDev : Standard deviation of all measurements
1 μs : 1 Microsecond (0.000001 sec)
// ***** BenchmarkRunner: End *****
Run time: 00:01:23 (83.71 sec), executed benchmarks: 3
Global total time: 00:01:29 (89.53 sec), executed benchmarks: 3
// * Artifacts cleanup *
Artifacts cleanup is finished
// * Detailed results *
CollectArray.GC0: DefaultJob
Runtime = .NET 9.0.18 (9.0.1826.31522), X64 RyuJIT AVX2; GC = Concurrent Workstation
Mean = 41.241 μs, StdErr = 0.824 μs (2.00%), N = 100, StdDev = 8.239 μs
Min = 32.122 μs, Q1 = 34.028 μs, Median = 39.152 μs, Q3 = 46.424 μs, Max = 61.018 μs
IQR = 12.396 μs, LowerFence = 15.434 μs, UpperFence = 65.018 μs
ConfidenceInterval = [38.447 μs; 44.035 μs] (CI 99.9%), Margin = 2.794 μs (6.78% of Mean)
Skewness = 0.78, Kurtosis = 2.34, MValue = 3.37
-------------------- Histogram --------------------
[31.530 μs ; 36.190 μs) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[36.190 μs ; 38.371 μs) | @@@@@
[38.371 μs ; 43.031 μs) | @@@@@@@@@@@@@@@@@@@@@
[43.031 μs ; 47.257 μs) | @@@@@@@@@@@
[47.257 μs ; 51.294 μs) | @@
[51.294 μs ; 56.646 μs) | @@@@@@@@@@@@@@
[56.646 μs ; 61.305 μs) | @@@@@@
CollectArray.GC1: DefaultJob
Runtime = .NET 9.0.18 (9.0.1826.31522), X64 RyuJIT AVX2; GC = Concurrent Workstation
Mean = 41.701 μs, StdErr = 0.682 μs (1.64%), N = 100, StdDev = 6.820 μs
Min = 33.724 μs, Q1 = 36.304 μs, Median = 39.169 μs, Q3 = 46.859 μs, Max = 61.442 μs
IQR = 10.554 μs, LowerFence = 20.473 μs, UpperFence = 62.690 μs
ConfidenceInterval = [39.389 μs; 44.014 μs] (CI 99.9%), Margin = 2.313 μs (5.55% of Mean)
Skewness = 0.91, Kurtosis = 2.83, MValue = 3
-------------------- Histogram --------------------
[31.795 μs ; 34.503 μs) | @@@@@@
[34.503 μs ; 38.360 μs) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[38.360 μs ; 42.293 μs) | @@@@@@@@@@@@@@@@@@@
[42.293 μs ; 46.035 μs) | @@@@@@@@@
[46.035 μs ; 49.892 μs) | @@@@@@@@@@@@@@
[49.892 μs ; 51.245 μs) |
[51.245 μs ; 55.102 μs) | @@@@@@@@@@@
[55.102 μs ; 58.019 μs) |
[58.019 μs ; 61.875 μs) | @@@
CollectArray.GC2: DefaultJob
Runtime = .NET 9.0.18 (9.0.1826.31522), X64 RyuJIT AVX2; GC = Concurrent Workstation
Mean = 407.020 μs, StdErr = 1.630 μs (0.40%), N = 15, StdDev = 6.313 μs
Min = 396.892 μs, Q1 = 403.265 μs, Median = 405.634 μs, Q3 = 411.446 μs, Max = 419.760 μs
IQR = 8.181 μs, LowerFence = 390.993 μs, UpperFence = 423.718 μs
ConfidenceInterval = [400.271 μs; 413.768 μs] (CI 99.9%), Margin = 6.748 μs (1.66% of Mean)
Skewness = 0.27, Kurtosis = 2.06, MValue = 2
-------------------- Histogram --------------------
[394.696 μs ; 410.828 μs) | @@@@@@@@@@@
[410.828 μs ; 423.119 μs) | @@@@
// * Summary *
BenchmarkDotNet v0.14.0, Ubuntu 24.04.4 LTS (Noble Numbat)
AMD EPYC 7763, 1 CPU, 4 logical and 2 physical cores
.NET SDK 10.0.302
[Host] : .NET 9.0.18 (9.0.1826.31522), X64 RyuJIT AVX2
DefaultJob : .NET 9.0.18 (9.0.1826.31522), X64 RyuJIT AVX2
| Method | Mean | Error | StdDev | Median |
|------- |----------:|---------:|---------:|----------:|
| GC0 | 41.24 μs | 2.794 μs | 8.239 μs | 39.15 μs |
| GC1 | 41.70 μs | 2.313 μs | 6.820 μs | 39.17 μs |
| GC2 | 407.02 μs | 6.748 μs | 6.313 μs | 405.63 μs |
// * Warnings *
MultimodalDistribution
CollectArray.GC0: Default -> It seems that the distribution is bimodal (mValue = 3.37)
CollectArray.GC1: Default -> It seems that the distribution can have several modes (mValue = 3)
// * Legends *
Mean : Arithmetic mean of all measurements
Error : Half of 99.9% confidence interval
StdDev : Standard deviation of all measurements
Median : Value separating the higher half of all measurements (50th percentile)
1 μs : 1 Microsecond (0.000001 sec)
// ***** BenchmarkRunner: End *****
Run time: 00:02:50 (170.96 sec), executed benchmarks: 3
Global total time: 00:02:56 (176.66 sec), executed benchmarks: 3
// * Artifacts cleanup *
Artifacts cleanup is finished
// * Detailed results *
CollectArrayLOH.GC0: DefaultJob
Runtime = .NET 9.0.18 (9.0.1826.31522), X64 RyuJIT AVX2; GC = Concurrent Workstation
Mean = 40.299 μs, StdErr = 0.804 μs (2.00%), N = 100, StdDev = 8.044 μs
Min = 31.496 μs, Q1 = 33.692 μs, Median = 36.857 μs, Q3 = 45.966 μs, Max = 60.272 μs
IQR = 12.274 μs, LowerFence = 15.281 μs, UpperFence = 64.377 μs
ConfidenceInterval = [37.571 μs; 43.027 μs] (CI 99.9%), Margin = 2.728 μs (6.77% of Mean)
Skewness = 0.83, Kurtosis = 2.34, MValue = 2.6
-------------------- Histogram --------------------
[29.221 μs ; 31.969 μs) | @@@
[31.969 μs ; 37.186 μs) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[37.186 μs ; 41.736 μs) | @@@@@@@@@@@@@@@@
[41.736 μs ; 46.106 μs) | @@@@@@@@@
[46.106 μs ; 47.636 μs) |
[47.636 μs ; 52.185 μs) | @@@@@@@@@@@@@@
[52.185 μs ; 57.479 μs) | @@@@@@@@@
[57.479 μs ; 62.547 μs) | @@
CollectArrayLOH.GC1: DefaultJob
Runtime = .NET 9.0.18 (9.0.1826.31522), X64 RyuJIT AVX2; GC = Concurrent Workstation
Mean = 41.135 μs, StdErr = 0.594 μs (1.44%), N = 97, StdDev = 5.847 μs
Min = 32.766 μs, Q1 = 36.530 μs, Median = 40.132 μs, Q3 = 43.993 μs, Max = 57.356 μs
IQR = 7.463 μs, LowerFence = 25.336 μs, UpperFence = 55.187 μs
ConfidenceInterval = [39.120 μs; 43.151 μs] (CI 99.9%), Margin = 2.015 μs (4.90% of Mean)
Skewness = 0.93, Kurtosis = 3.11, MValue = 3.79
-------------------- Histogram --------------------
[31.095 μs ; 34.395 μs) | @@@@@
[34.395 μs ; 37.735 μs) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[37.735 μs ; 42.097 μs) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[42.097 μs ; 44.785 μs) | @@@@@
[44.785 μs ; 48.125 μs) | @@@@@@@@@@
[48.125 μs ; 52.539 μs) | @@@@@@@@@
[52.539 μs ; 54.254 μs) | @
[54.254 μs ; 57.594 μs) | @@@@
CollectArrayLOH.GC2: DefaultJob
Runtime = .NET 9.0.18 (9.0.1826.31522), X64 RyuJIT AVX2; GC = Concurrent Workstation
Mean = 298.163 μs, StdErr = 1.619 μs (0.54%), N = 29, StdDev = 8.720 μs
Min = 285.063 μs, Q1 = 290.269 μs, Median = 297.883 μs, Q3 = 303.166 μs, Max = 316.905 μs
IQR = 12.897 μs, LowerFence = 270.924 μs, UpperFence = 322.512 μs
ConfidenceInterval = [292.214 μs; 304.112 μs] (CI 99.9%), Margin = 5.949 μs (2.00% of Mean)
Skewness = 0.4, Kurtosis = 2.07, MValue = 2
-------------------- Histogram --------------------
[281.338 μs ; 288.082 μs) | @@
[288.082 μs ; 295.533 μs) | @@@@@@@@@@@
[295.533 μs ; 303.716 μs) | @@@@@@@@@
[303.716 μs ; 313.764 μs) | @@@@@@
[313.764 μs ; 320.631 μs) | @
// * Summary *
BenchmarkDotNet v0.14.0, Ubuntu 24.04.4 LTS (Noble Numbat)
AMD EPYC 7763, 1 CPU, 4 logical and 2 physical cores
.NET SDK 10.0.302
[Host] : .NET 9.0.18 (9.0.1826.31522), X64 RyuJIT AVX2
DefaultJob : .NET 9.0.18 (9.0.1826.31522), X64 RyuJIT AVX2
| Method | Mean | Error | StdDev | Median |
|------- |----------:|---------:|---------:|----------:|
| GC0 | 40.30 μs | 2.728 μs | 8.044 μs | 36.86 μs |
| GC1 | 41.14 μs | 2.015 μs | 5.847 μs | 40.13 μs |
| GC2 | 298.16 μs | 5.949 μs | 8.720 μs | 297.88 μs |
// * Warnings *
MultimodalDistribution
CollectArrayLOH.GC1: Default -> It seems that the distribution is bimodal (mValue = 3.79)
// * Hints *
Outliers
CollectArrayLOH.GC1: Default -> 3 outliers were removed (60.54 μs..64.34 μs)
CollectArrayLOH.GC2: Default -> 1 outlier was removed (331.45 μs)
// * Legends *
Mean : Arithmetic mean of all measurements
Error : Half of 99.9% confidence interval
StdDev : Standard deviation of all measurements
Median : Value separating the higher half of all measurements (50th percentile)
1 μs : 1 Microsecond (0.000001 sec)
// ***** BenchmarkRunner: End *****
Run time: 00:02:52 (172.93 sec), executed benchmarks: 3
Global total time: 00:02:58 (178.72 sec), executed benchmarks: 3
// * Artifacts cleanup *
Artifacts cleanup is finished