This is an automated email from the ASF dual-hosted git repository.
dongjoon pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/spark.git
The following commit(s) were added to refs/heads/master by this push:
new d4f275b [SPARK-38127][SQL][TESTS] Fix bug of `EnumTypeSetBenchmark`
and update benchmark result
d4f275b is described below
commit d4f275b1d81a5f855412613c30c39cf300cb013d
Author: yangjie01 <[email protected]>
AuthorDate: Mon Feb 7 21:04:11 2022 -0800
[SPARK-38127][SQL][TESTS] Fix bug of `EnumTypeSetBenchmark` and update
benchmark result
### What changes were proposed in this pull request?
`EnumTypeSetBenchmark` use to compare the `create` and `contains`
performance of `EnumSet` and `HashSet`.Before this PR, there are some logical
errors in the bench case, for example `testContainsOperation `:
https://github.com/apache/spark/blob/9d0563733bacc39ffbb7a07e5d3fc6de71d0cfb3/sql/catalyst/src/test/scala/org/apache/spark/sql/connector/catalog/EnumTypeSetBenchmark.scala#L102-L110
`Use HashSet` circulates 100000 times(`valuesPerIteration `is 100000) and
`Use EnumSet` circulates only once.
So this pr fix this bug and update benchmark result.
### Why are the changes needed?
Bug fix.
### Does this PR introduce _any_ user-facing change?
No.
### How was this patch tested?
Pass GA
Closes #35418 from LuciferYang/Fix-EnumTypeSetBenchmark.
Authored-by: yangjie01 <[email protected]>
Signed-off-by: Dongjoon Hyun <[email protected]>
---
.../EnumTypeSetBenchmark-jdk11-results.txt | 120 ++++++++++-----------
.../EnumTypeSetBenchmark-jdk17-results.txt | 120 ++++++++++-----------
.../benchmarks/EnumTypeSetBenchmark-results.txt | 120 ++++++++++-----------
.../connector/catalog/EnumTypeSetBenchmark.scala | 8 +-
4 files changed, 186 insertions(+), 182 deletions(-)
diff --git a/sql/catalyst/benchmarks/EnumTypeSetBenchmark-jdk11-results.txt
b/sql/catalyst/benchmarks/EnumTypeSetBenchmark-jdk11-results.txt
index 956db2e..d26da81 100644
--- a/sql/catalyst/benchmarks/EnumTypeSetBenchmark-jdk11-results.txt
+++ b/sql/catalyst/benchmarks/EnumTypeSetBenchmark-jdk11-results.txt
@@ -1,105 +1,105 @@
-OpenJDK 64-Bit Server VM 11.0.13+8-LTS on Linux 5.11.0-1022-azure
-Intel(R) Xeon(R) CPU E5-2673 v4 @ 2.30GHz
+OpenJDK 64-Bit Server VM 11.0.14+9-LTS on Linux 5.11.0-1028-azure
+Intel(R) Xeon(R) Platinum 8171M CPU @ 2.60GHz
Test contains use empty Set: Best Time(ms) Avg Time(ms)
Stdev(ms) Rate(M/s) Per Row(ns) Relative
------------------------------------------------------------------------------------------------------------------------
-Use HashSet 1 1
0 1722.9 0.6 1.0X
-Use EnumSet 0 0
0 Infinity 0.0 InfinityX
+Use HashSet 1 1
0 1120.1 0.9 1.0X
+Use EnumSet 2 2
0 550.8 1.8 0.5X
-OpenJDK 64-Bit Server VM 11.0.13+8-LTS on Linux 5.11.0-1022-azure
-Intel(R) Xeon(R) CPU E5-2673 v4 @ 2.30GHz
+OpenJDK 64-Bit Server VM 11.0.14+9-LTS on Linux 5.11.0-1028-azure
+Intel(R) Xeon(R) Platinum 8171M CPU @ 2.60GHz
Test contains use 1 item Set: Best Time(ms) Avg Time(ms)
Stdev(ms) Rate(M/s) Per Row(ns) Relative
------------------------------------------------------------------------------------------------------------------------
-Use HashSet 10 11
1 97.5 10.3 1.0X
-Use EnumSet 0 0
0 Infinity 0.0 InfinityX
+Use HashSet 8 8
1 126.0 7.9 1.0X
+Use EnumSet 2 2
0 590.4 1.7 4.7X
-OpenJDK 64-Bit Server VM 11.0.13+8-LTS on Linux 5.11.0-1022-azure
-Intel(R) Xeon(R) CPU E5-2673 v4 @ 2.30GHz
+OpenJDK 64-Bit Server VM 11.0.14+9-LTS on Linux 5.11.0-1028-azure
+Intel(R) Xeon(R) Platinum 8171M CPU @ 2.60GHz
Test contains use 3 items Set: Best Time(ms) Avg Time(ms)
Stdev(ms) Rate(M/s) Per Row(ns) Relative
------------------------------------------------------------------------------------------------------------------------
-Use HashSet 22 23
1 46.1 21.7 1.0X
-Use EnumSet 0 0
0 10000000.0 0.0 216928.7X
+Use HashSet 15 15
1 67.4 14.8 1.0X
+Use EnumSet 2 2
0 652.3 1.5 9.7X
-OpenJDK 64-Bit Server VM 11.0.13+8-LTS on Linux 5.11.0-1022-azure
-Intel(R) Xeon(R) CPU E5-2673 v4 @ 2.30GHz
+OpenJDK 64-Bit Server VM 11.0.14+9-LTS on Linux 5.11.0-1028-azure
+Intel(R) Xeon(R) Platinum 8171M CPU @ 2.60GHz
Test contains use 5 items Set: Best Time(ms) Avg Time(ms)
Stdev(ms) Rate(M/s) Per Row(ns) Relative
------------------------------------------------------------------------------------------------------------------------
-Use HashSet 18 20
2 57.0 17.6 1.0X
-Use EnumSet 0 0
0 10000000.0 0.0 175588.1X
+Use HashSet 17 18
1 57.5 17.4 1.0X
+Use EnumSet 2 2
0 591.2 1.7 10.3X
-OpenJDK 64-Bit Server VM 11.0.13+8-LTS on Linux 5.11.0-1022-azure
-Intel(R) Xeon(R) CPU E5-2673 v4 @ 2.30GHz
+OpenJDK 64-Bit Server VM 11.0.14+9-LTS on Linux 5.11.0-1028-azure
+Intel(R) Xeon(R) Platinum 8171M CPU @ 2.60GHz
Test contains use 10 items Set: Best Time(ms) Avg Time(ms)
Stdev(ms) Rate(M/s) Per Row(ns) Relative
------------------------------------------------------------------------------------------------------------------------
-Use HashSet 20 22
2 50.2 19.9 1.0X
-Use EnumSet 0 0
0 10000000.0 0.0 199224.4X
+Use HashSet 18 18
0 54.8 18.2 1.0X
+Use EnumSet 2 2
0 591.4 1.7 10.8X
-OpenJDK 64-Bit Server VM 11.0.13+8-LTS on Linux 5.11.0-1022-azure
-Intel(R) Xeon(R) CPU E5-2673 v4 @ 2.30GHz
+OpenJDK 64-Bit Server VM 11.0.14+9-LTS on Linux 5.11.0-1028-azure
+Intel(R) Xeon(R) Platinum 8171M CPU @ 2.60GHz
Test create empty Set: Best Time(ms) Avg Time(ms)
Stdev(ms) Rate(M/s) Per Row(ns) Relative
------------------------------------------------------------------------------------------------------------------------
-Use HashSet 1 1
0 147.1 6.8 1.0X
-Use EnumSet 2 2
0 57.9 17.3 0.4X
+Use HashSet 1 1
0 95.0 10.5 1.0X
+Use EnumSet 2 2
0 54.4 18.4 0.6X
-OpenJDK 64-Bit Server VM 11.0.13+8-LTS on Linux 5.11.0-1022-azure
-Intel(R) Xeon(R) CPU E5-2673 v4 @ 2.30GHz
+OpenJDK 64-Bit Server VM 11.0.14+9-LTS on Linux 5.11.0-1028-azure
+Intel(R) Xeon(R) Platinum 8171M CPU @ 2.60GHz
Test create 1 item Set: Best Time(ms) Avg Time(ms)
Stdev(ms) Rate(M/s) Per Row(ns) Relative
------------------------------------------------------------------------------------------------------------------------
-Use HashSet 15 16
2 6.7 149.6 1.0X
-Use EnumSet 2 3
1 42.6 23.5 6.4X
+Use HashSet 31 32
2 3.2 310.3 1.0X
+Use EnumSet 3 3
0 38.0 26.3 11.8X
-OpenJDK 64-Bit Server VM 11.0.13+8-LTS on Linux 5.11.0-1022-azure
-Intel(R) Xeon(R) CPU E5-2673 v4 @ 2.30GHz
+OpenJDK 64-Bit Server VM 11.0.14+9-LTS on Linux 5.11.0-1028-azure
+Intel(R) Xeon(R) Platinum 8171M CPU @ 2.60GHz
Test create 3 items Set: Best Time(ms) Avg Time(ms)
Stdev(ms) Rate(M/s) Per Row(ns) Relative
------------------------------------------------------------------------------------------------------------------------
-Use HashSet 45 47
2 2.2 450.9 1.0X
-Use EnumSet 2 3
1 41.2 24.3 18.6X
+Use HashSet 75 75
0 1.3 751.6 1.0X
+Use EnumSet 3 3
0 36.1 27.7 27.2X
-OpenJDK 64-Bit Server VM 11.0.13+8-LTS on Linux 5.11.0-1022-azure
-Intel(R) Xeon(R) CPU E5-2673 v4 @ 2.30GHz
+OpenJDK 64-Bit Server VM 11.0.14+9-LTS on Linux 5.11.0-1028-azure
+Intel(R) Xeon(R) Platinum 8171M CPU @ 2.60GHz
Test create 5 items Set: Best Time(ms) Avg Time(ms)
Stdev(ms) Rate(M/s) Per Row(ns) Relative
------------------------------------------------------------------------------------------------------------------------
-Use HashSet 104 108
5 1.0 1036.7 1.0X
-Use EnumSet 2 3
1 44.3 22.6 46.0X
+Use HashSet 122 123
0 0.8 1225.0 1.0X
+Use EnumSet 2 2
0 41.8 23.9 51.2X
-OpenJDK 64-Bit Server VM 11.0.13+8-LTS on Linux 5.11.0-1022-azure
-Intel(R) Xeon(R) CPU E5-2673 v4 @ 2.30GHz
+OpenJDK 64-Bit Server VM 11.0.14+9-LTS on Linux 5.11.0-1028-azure
+Intel(R) Xeon(R) Platinum 8171M CPU @ 2.60GHz
Test create 10 items Set: Best Time(ms) Avg Time(ms)
Stdev(ms) Rate(M/s) Per Row(ns) Relative
------------------------------------------------------------------------------------------------------------------------
-Use HashSet 147 154
5 0.7 1474.0 1.0X
-Use EnumSet 2 2
1 56.9 17.6 83.8X
+Use HashSet 161 162
0 0.6 1614.9 1.0X
+Use EnumSet 2 2
0 52.1 19.2 84.2X
-OpenJDK 64-Bit Server VM 11.0.13+8-LTS on Linux 5.11.0-1022-azure
-Intel(R) Xeon(R) CPU E5-2673 v4 @ 2.30GHz
+OpenJDK 64-Bit Server VM 11.0.14+9-LTS on Linux 5.11.0-1028-azure
+Intel(R) Xeon(R) Platinum 8171M CPU @ 2.60GHz
Test create and contains use empty Set: Best Time(ms) Avg Time(ms)
Stdev(ms) Rate(M/s) Per Row(ns) Relative
------------------------------------------------------------------------------------------------------------------------
-Use HashSet 1 1
0 798.4 1.3 1.0X
-Use EnumSet 0 0
0 Infinity 0.0 InfinityX
+Use HashSet 2 2
0 608.4 1.6 1.0X
+Use EnumSet 3 4
0 295.5 3.4 0.5X
-OpenJDK 64-Bit Server VM 11.0.13+8-LTS on Linux 5.11.0-1022-azure
-Intel(R) Xeon(R) CPU E5-2673 v4 @ 2.30GHz
+OpenJDK 64-Bit Server VM 11.0.14+9-LTS on Linux 5.11.0-1028-azure
+Intel(R) Xeon(R) Platinum 8171M CPU @ 2.60GHz
Test create and contains use 1 item Set: Best Time(ms) Avg Time(ms)
Stdev(ms) Rate(M/s) Per Row(ns) Relative
------------------------------------------------------------------------------------------------------------------------
-Use HashSet 39 42
3 25.5 39.2 1.0X
-Use EnumSet 0 0
0 Infinity 0.0 InfinityX
+Use HashSet 57 58
2 17.6 56.8 1.0X
+Use EnumSet 4 4
0 284.2 3.5 16.2X
-OpenJDK 64-Bit Server VM 11.0.13+8-LTS on Linux 5.11.0-1022-azure
-Intel(R) Xeon(R) CPU E5-2673 v4 @ 2.30GHz
+OpenJDK 64-Bit Server VM 11.0.14+9-LTS on Linux 5.11.0-1028-azure
+Intel(R) Xeon(R) Platinum 8171M CPU @ 2.60GHz
Test create and contains use 3 items Set: Best Time(ms) Avg Time(ms)
Stdev(ms) Rate(M/s) Per Row(ns) Relative
------------------------------------------------------------------------------------------------------------------------
-Use HashSet 73 75
2 13.7 73.2 1.0X
-Use EnumSet 0 0
0 Infinity 0.0 InfinityX
+Use HashSet 97 97
0 10.3 96.7 1.0X
+Use EnumSet 4 4
0 263.3 3.8 25.5X
-OpenJDK 64-Bit Server VM 11.0.13+8-LTS on Linux 5.11.0-1022-azure
-Intel(R) Xeon(R) CPU E5-2673 v4 @ 2.30GHz
+OpenJDK 64-Bit Server VM 11.0.14+9-LTS on Linux 5.11.0-1028-azure
+Intel(R) Xeon(R) Platinum 8171M CPU @ 2.60GHz
Test create and contains use 5 items Set: Best Time(ms) Avg Time(ms)
Stdev(ms) Rate(M/s) Per Row(ns) Relative
------------------------------------------------------------------------------------------------------------------------
-Use HashSet 157 162
3 6.4 157.3 1.0X
-Use EnumSet 0 0
0 Infinity 0.0 InfinityX
+Use HashSet 174 175
2 5.8 173.6 1.0X
+Use EnumSet 4 4
0 240.7 4.2 41.8X
-OpenJDK 64-Bit Server VM 11.0.13+8-LTS on Linux 5.11.0-1022-azure
-Intel(R) Xeon(R) CPU E5-2673 v4 @ 2.30GHz
+OpenJDK 64-Bit Server VM 11.0.14+9-LTS on Linux 5.11.0-1028-azure
+Intel(R) Xeon(R) Platinum 8171M CPU @ 2.60GHz
Test create and contains use 10 items Set: Best Time(ms) Avg Time(ms)
Stdev(ms) Rate(M/s) Per Row(ns) Relative
-------------------------------------------------------------------------------------------------------------------------
-Use HashSet 197 206
6 5.1 197.4 1.0X
-Use EnumSet 0 0
0 Infinity 0.0 InfinityX
+Use HashSet 211 214
5 4.7 211.4 1.0X
+Use EnumSet 4 4
0 272.3 3.7 57.6X
diff --git a/sql/catalyst/benchmarks/EnumTypeSetBenchmark-jdk17-results.txt
b/sql/catalyst/benchmarks/EnumTypeSetBenchmark-jdk17-results.txt
index 982ad07..d110a29 100644
--- a/sql/catalyst/benchmarks/EnumTypeSetBenchmark-jdk17-results.txt
+++ b/sql/catalyst/benchmarks/EnumTypeSetBenchmark-jdk17-results.txt
@@ -1,105 +1,105 @@
-OpenJDK 64-Bit Server VM 17.0.1+12-LTS on Linux 5.11.0-1022-azure
-Intel(R) Xeon(R) Platinum 8272CL CPU @ 2.60GHz
+OpenJDK 64-Bit Server VM 17.0.2+8-LTS on Linux 5.11.0-1028-azure
+Intel(R) Xeon(R) CPU E5-2673 v4 @ 2.30GHz
Test contains use empty Set: Best Time(ms) Avg Time(ms)
Stdev(ms) Rate(M/s) Per Row(ns) Relative
------------------------------------------------------------------------------------------------------------------------
-Use HashSet 0 1
0 2155.1 0.5 1.0X
-Use EnumSet 0 0
0 Infinity 0.0 InfinityX
+Use HashSet 5 6
0 194.8 5.1 1.0X
+Use EnumSet 1 1
0 879.0 1.1 4.5X
-OpenJDK 64-Bit Server VM 17.0.1+12-LTS on Linux 5.11.0-1022-azure
-Intel(R) Xeon(R) Platinum 8272CL CPU @ 2.60GHz
+OpenJDK 64-Bit Server VM 17.0.2+8-LTS on Linux 5.11.0-1028-azure
+Intel(R) Xeon(R) CPU E5-2673 v4 @ 2.30GHz
Test contains use 1 item Set: Best Time(ms) Avg Time(ms)
Stdev(ms) Rate(M/s) Per Row(ns) Relative
------------------------------------------------------------------------------------------------------------------------
-Use HashSet 10 10
0 100.7 9.9 1.0X
-Use EnumSet 0 0
0 Infinity 0.0 InfinityX
+Use HashSet 8 10
1 117.8 8.5 1.0X
+Use EnumSet 1 1
0 904.7 1.1 7.7X
-OpenJDK 64-Bit Server VM 17.0.1+12-LTS on Linux 5.11.0-1022-azure
-Intel(R) Xeon(R) Platinum 8272CL CPU @ 2.60GHz
+OpenJDK 64-Bit Server VM 17.0.2+8-LTS on Linux 5.11.0-1028-azure
+Intel(R) Xeon(R) CPU E5-2673 v4 @ 2.30GHz
Test contains use 3 items Set: Best Time(ms) Avg Time(ms)
Stdev(ms) Rate(M/s) Per Row(ns) Relative
------------------------------------------------------------------------------------------------------------------------
-Use HashSet 18 18
0 57.0 17.5 1.0X
-Use EnumSet 0 0
0 Infinity 0.0 InfinityX
+Use HashSet 16 18
1 60.8 16.4 1.0X
+Use EnumSet 1 1
0 965.2 1.0 15.9X
-OpenJDK 64-Bit Server VM 17.0.1+12-LTS on Linux 5.11.0-1022-azure
-Intel(R) Xeon(R) Platinum 8272CL CPU @ 2.60GHz
+OpenJDK 64-Bit Server VM 17.0.2+8-LTS on Linux 5.11.0-1028-azure
+Intel(R) Xeon(R) CPU E5-2673 v4 @ 2.30GHz
Test contains use 5 items Set: Best Time(ms) Avg Time(ms)
Stdev(ms) Rate(M/s) Per Row(ns) Relative
------------------------------------------------------------------------------------------------------------------------
-Use HashSet 15 15
0 68.0 14.7 1.0X
-Use EnumSet 0 0
0 Infinity 0.0 InfinityX
+Use HashSet 16 17
1 63.7 15.7 1.0X
+Use EnumSet 1 1
0 933.1 1.1 14.7X
-OpenJDK 64-Bit Server VM 17.0.1+12-LTS on Linux 5.11.0-1022-azure
-Intel(R) Xeon(R) Platinum 8272CL CPU @ 2.60GHz
+OpenJDK 64-Bit Server VM 17.0.2+8-LTS on Linux 5.11.0-1028-azure
+Intel(R) Xeon(R) CPU E5-2673 v4 @ 2.30GHz
Test contains use 10 items Set: Best Time(ms) Avg Time(ms)
Stdev(ms) Rate(M/s) Per Row(ns) Relative
------------------------------------------------------------------------------------------------------------------------
-Use HashSet 16 17
1 61.0 16.4 1.0X
-Use EnumSet 0 0
0 Infinity 0.0 InfinityX
+Use HashSet 16 19
2 60.7 16.5 1.0X
+Use EnumSet 1 1
0 831.7 1.2 13.7X
-OpenJDK 64-Bit Server VM 17.0.1+12-LTS on Linux 5.11.0-1022-azure
-Intel(R) Xeon(R) Platinum 8272CL CPU @ 2.60GHz
+OpenJDK 64-Bit Server VM 17.0.2+8-LTS on Linux 5.11.0-1028-azure
+Intel(R) Xeon(R) CPU E5-2673 v4 @ 2.30GHz
Test create empty Set: Best Time(ms) Avg Time(ms)
Stdev(ms) Rate(M/s) Per Row(ns) Relative
------------------------------------------------------------------------------------------------------------------------
-Use HashSet 0 1
0 218.9 4.6 1.0X
-Use EnumSet 1 1
0 83.2 12.0 0.4X
+Use HashSet 1 1
0 99.7 10.0 1.0X
+Use EnumSet 1 1
0 82.8 12.1 0.8X
-OpenJDK 64-Bit Server VM 17.0.1+12-LTS on Linux 5.11.0-1022-azure
-Intel(R) Xeon(R) Platinum 8272CL CPU @ 2.60GHz
+OpenJDK 64-Bit Server VM 17.0.2+8-LTS on Linux 5.11.0-1028-azure
+Intel(R) Xeon(R) CPU E5-2673 v4 @ 2.30GHz
Test create 1 item Set: Best Time(ms) Avg Time(ms)
Stdev(ms) Rate(M/s) Per Row(ns) Relative
------------------------------------------------------------------------------------------------------------------------
-Use HashSet 17 17
1 5.9 168.4 1.0X
-Use EnumSet 2 2
0 56.2 17.8 9.5X
+Use HashSet 13 14
1 7.6 132.1 1.0X
+Use EnumSet 2 2
0 46.9 21.3 6.2X
-OpenJDK 64-Bit Server VM 17.0.1+12-LTS on Linux 5.11.0-1022-azure
-Intel(R) Xeon(R) Platinum 8272CL CPU @ 2.60GHz
+OpenJDK 64-Bit Server VM 17.0.2+8-LTS on Linux 5.11.0-1028-azure
+Intel(R) Xeon(R) CPU E5-2673 v4 @ 2.30GHz
Test create 3 items Set: Best Time(ms) Avg Time(ms)
Stdev(ms) Rate(M/s) Per Row(ns) Relative
------------------------------------------------------------------------------------------------------------------------
-Use HashSet 49 50
1 2.0 493.3 1.0X
-Use EnumSet 1 1
0 89.7 11.1 44.2X
+Use HashSet 45 46
1 2.2 446.6 1.0X
+Use EnumSet 1 2
0 68.6 14.6 30.7X
-OpenJDK 64-Bit Server VM 17.0.1+12-LTS on Linux 5.11.0-1022-azure
-Intel(R) Xeon(R) Platinum 8272CL CPU @ 2.60GHz
+OpenJDK 64-Bit Server VM 17.0.2+8-LTS on Linux 5.11.0-1028-azure
+Intel(R) Xeon(R) CPU E5-2673 v4 @ 2.30GHz
Test create 5 items Set: Best Time(ms) Avg Time(ms)
Stdev(ms) Rate(M/s) Per Row(ns) Relative
------------------------------------------------------------------------------------------------------------------------
-Use HashSet 116 118
1 0.9 1164.2 1.0X
-Use EnumSet 1 1
0 89.7 11.2 104.4X
+Use HashSet 127 128
1 0.8 1268.6 1.0X
+Use EnumSet 1 2
0 80.3 12.5 101.9X
-OpenJDK 64-Bit Server VM 17.0.1+12-LTS on Linux 5.11.0-1022-azure
-Intel(R) Xeon(R) Platinum 8272CL CPU @ 2.60GHz
+OpenJDK 64-Bit Server VM 17.0.2+8-LTS on Linux 5.11.0-1028-azure
+Intel(R) Xeon(R) CPU E5-2673 v4 @ 2.30GHz
Test create 10 items Set: Best Time(ms) Avg Time(ms)
Stdev(ms) Rate(M/s) Per Row(ns) Relative
------------------------------------------------------------------------------------------------------------------------
-Use HashSet 168 170
2 0.6 1681.4 1.0X
-Use EnumSet 1 1
0 83.6 12.0 140.6X
+Use HashSet 148 158
6 0.7 1479.8 1.0X
+Use EnumSet 1 1
0 87.4 11.4 129.4X
-OpenJDK 64-Bit Server VM 17.0.1+12-LTS on Linux 5.11.0-1022-azure
-Intel(R) Xeon(R) Platinum 8272CL CPU @ 2.60GHz
+OpenJDK 64-Bit Server VM 17.0.2+8-LTS on Linux 5.11.0-1028-azure
+Intel(R) Xeon(R) CPU E5-2673 v4 @ 2.30GHz
Test create and contains use empty Set: Best Time(ms) Avg Time(ms)
Stdev(ms) Rate(M/s) Per Row(ns) Relative
------------------------------------------------------------------------------------------------------------------------
-Use HashSet 1 1
0 904.5 1.1 1.0X
-Use EnumSet 0 0
0 Infinity 0.0 InfinityX
+Use HashSet 1 1
1 870.5 1.1 1.0X
+Use EnumSet 2 2
0 497.6 2.0 0.6X
-OpenJDK 64-Bit Server VM 17.0.1+12-LTS on Linux 5.11.0-1022-azure
-Intel(R) Xeon(R) Platinum 8272CL CPU @ 2.60GHz
+OpenJDK 64-Bit Server VM 17.0.2+8-LTS on Linux 5.11.0-1028-azure
+Intel(R) Xeon(R) CPU E5-2673 v4 @ 2.30GHz
Test create and contains use 1 item Set: Best Time(ms) Avg Time(ms)
Stdev(ms) Rate(M/s) Per Row(ns) Relative
------------------------------------------------------------------------------------------------------------------------
-Use HashSet 38 38
2 26.5 37.8 1.0X
-Use EnumSet 0 0
0 Infinity 0.0 InfinityX
+Use HashSet 27 30
2 36.9 27.1 1.0X
+Use EnumSet 2 3
0 457.0 2.2 12.4X
-OpenJDK 64-Bit Server VM 17.0.1+12-LTS on Linux 5.11.0-1022-azure
-Intel(R) Xeon(R) Platinum 8272CL CPU @ 2.60GHz
+OpenJDK 64-Bit Server VM 17.0.2+8-LTS on Linux 5.11.0-1028-azure
+Intel(R) Xeon(R) CPU E5-2673 v4 @ 2.30GHz
Test create and contains use 3 items Set: Best Time(ms) Avg Time(ms)
Stdev(ms) Rate(M/s) Per Row(ns) Relative
------------------------------------------------------------------------------------------------------------------------
-Use HashSet 67 68
2 14.9 67.2 1.0X
-Use EnumSet 0 0
0 Infinity 0.0 InfinityX
+Use HashSet 60 64
3 16.6 60.1 1.0X
+Use EnumSet 2 2
0 460.9 2.2 27.7X
-OpenJDK 64-Bit Server VM 17.0.1+12-LTS on Linux 5.11.0-1022-azure
-Intel(R) Xeon(R) Platinum 8272CL CPU @ 2.60GHz
+OpenJDK 64-Bit Server VM 17.0.2+8-LTS on Linux 5.11.0-1028-azure
+Intel(R) Xeon(R) CPU E5-2673 v4 @ 2.30GHz
Test create and contains use 5 items Set: Best Time(ms) Avg Time(ms)
Stdev(ms) Rate(M/s) Per Row(ns) Relative
------------------------------------------------------------------------------------------------------------------------
-Use HashSet 135 137
3 7.4 134.6 1.0X
-Use EnumSet 0 0
0 Infinity 0.0 InfinityX
+Use HashSet 146 151
4 6.9 145.6 1.0X
+Use EnumSet 2 2
0 645.0 1.6 93.9X
-OpenJDK 64-Bit Server VM 17.0.1+12-LTS on Linux 5.11.0-1022-azure
-Intel(R) Xeon(R) Platinum 8272CL CPU @ 2.60GHz
+OpenJDK 64-Bit Server VM 17.0.2+8-LTS on Linux 5.11.0-1028-azure
+Intel(R) Xeon(R) CPU E5-2673 v4 @ 2.30GHz
Test create and contains use 10 items Set: Best Time(ms) Avg Time(ms)
Stdev(ms) Rate(M/s) Per Row(ns) Relative
-------------------------------------------------------------------------------------------------------------------------
-Use HashSet 187 190
3 5.3 187.2 1.0X
-Use EnumSet 0 0
0 Infinity 0.0 InfinityX
+Use HashSet 193 200
5 5.2 192.6 1.0X
+Use EnumSet 2 2
0 602.8 1.7 116.1X
diff --git a/sql/catalyst/benchmarks/EnumTypeSetBenchmark-results.txt
b/sql/catalyst/benchmarks/EnumTypeSetBenchmark-results.txt
index e2c0e3d..4d4eb02 100644
--- a/sql/catalyst/benchmarks/EnumTypeSetBenchmark-results.txt
+++ b/sql/catalyst/benchmarks/EnumTypeSetBenchmark-results.txt
@@ -1,105 +1,105 @@
-OpenJDK 64-Bit Server VM 1.8.0_312-b07 on Linux 5.11.0-1022-azure
-Intel(R) Xeon(R) CPU E5-2673 v4 @ 2.30GHz
+OpenJDK 64-Bit Server VM 1.8.0_322-b06 on Linux 5.11.0-1028-azure
+Intel(R) Xeon(R) Platinum 8272CL CPU @ 2.60GHz
Test contains use empty Set: Best Time(ms) Avg Time(ms)
Stdev(ms) Rate(M/s) Per Row(ns) Relative
------------------------------------------------------------------------------------------------------------------------
-Use HashSet 0 1
1 2192.0 0.5 1.0X
-Use EnumSet 0 0
0 Infinity 0.0 InfinityX
+Use HashSet 1 1
0 1709.1 0.6 1.0X
+Use EnumSet 2 2
0 554.8 1.8 0.3X
-OpenJDK 64-Bit Server VM 1.8.0_312-b07 on Linux 5.11.0-1022-azure
-Intel(R) Xeon(R) CPU E5-2673 v4 @ 2.30GHz
+OpenJDK 64-Bit Server VM 1.8.0_322-b06 on Linux 5.11.0-1028-azure
+Intel(R) Xeon(R) Platinum 8272CL CPU @ 2.60GHz
Test contains use 1 item Set: Best Time(ms) Avg Time(ms)
Stdev(ms) Rate(M/s) Per Row(ns) Relative
------------------------------------------------------------------------------------------------------------------------
-Use HashSet 10 11
1 102.0 9.8 1.0X
-Use EnumSet 0 0
0 Infinity 0.0 InfinityX
+Use HashSet 8 8
0 124.2 8.1 1.0X
+Use EnumSet 2 2
0 423.8 2.4 3.4X
-OpenJDK 64-Bit Server VM 1.8.0_312-b07 on Linux 5.11.0-1022-azure
-Intel(R) Xeon(R) CPU E5-2673 v4 @ 2.30GHz
+OpenJDK 64-Bit Server VM 1.8.0_322-b06 on Linux 5.11.0-1028-azure
+Intel(R) Xeon(R) Platinum 8272CL CPU @ 2.60GHz
Test contains use 3 items Set: Best Time(ms) Avg Time(ms)
Stdev(ms) Rate(M/s) Per Row(ns) Relative
------------------------------------------------------------------------------------------------------------------------
-Use HashSet 19 21
1 53.2 18.8 1.0X
-Use EnumSet 0 0
0 Infinity 0.0 InfinityX
+Use HashSet 16 16
0 62.6 16.0 1.0X
+Use EnumSet 2 2
0 423.8 2.4 6.8X
-OpenJDK 64-Bit Server VM 1.8.0_312-b07 on Linux 5.11.0-1022-azure
-Intel(R) Xeon(R) CPU E5-2673 v4 @ 2.30GHz
+OpenJDK 64-Bit Server VM 1.8.0_322-b06 on Linux 5.11.0-1028-azure
+Intel(R) Xeon(R) Platinum 8272CL CPU @ 2.60GHz
Test contains use 5 items Set: Best Time(ms) Avg Time(ms)
Stdev(ms) Rate(M/s) Per Row(ns) Relative
------------------------------------------------------------------------------------------------------------------------
-Use HashSet 16 17
1 61.5 16.3 1.0X
-Use EnumSet 0 0
0 Infinity 0.0 InfinityX
+Use HashSet 15 15
0 66.3 15.1 1.0X
+Use EnumSet 2 4
2 423.8 2.4 6.4X
-OpenJDK 64-Bit Server VM 1.8.0_312-b07 on Linux 5.11.0-1022-azure
-Intel(R) Xeon(R) CPU E5-2673 v4 @ 2.30GHz
+OpenJDK 64-Bit Server VM 1.8.0_322-b06 on Linux 5.11.0-1028-azure
+Intel(R) Xeon(R) Platinum 8272CL CPU @ 2.60GHz
Test contains use 10 items Set: Best Time(ms) Avg Time(ms)
Stdev(ms) Rate(M/s) Per Row(ns) Relative
------------------------------------------------------------------------------------------------------------------------
-Use HashSet 18 20
1 56.6 17.7 1.0X
-Use EnumSet 0 0
0 Infinity 0.0 InfinityX
+Use HashSet 15 16
0 65.3 15.3 1.0X
+Use EnumSet 2 3
0 423.8 2.4 6.5X
-OpenJDK 64-Bit Server VM 1.8.0_312-b07 on Linux 5.11.0-1022-azure
-Intel(R) Xeon(R) CPU E5-2673 v4 @ 2.30GHz
+OpenJDK 64-Bit Server VM 1.8.0_322-b06 on Linux 5.11.0-1028-azure
+Intel(R) Xeon(R) Platinum 8272CL CPU @ 2.60GHz
Test create empty Set: Best Time(ms) Avg Time(ms)
Stdev(ms) Rate(M/s) Per Row(ns) Relative
------------------------------------------------------------------------------------------------------------------------
-Use HashSet 1 1
0 136.6 7.3 1.0X
-Use EnumSet 2 2
0 65.5 15.3 0.5X
+Use HashSet 1 1
0 132.0 7.6 1.0X
+Use EnumSet 2 2
0 62.4 16.0 0.5X
-OpenJDK 64-Bit Server VM 1.8.0_312-b07 on Linux 5.11.0-1022-azure
-Intel(R) Xeon(R) CPU E5-2673 v4 @ 2.30GHz
+OpenJDK 64-Bit Server VM 1.8.0_322-b06 on Linux 5.11.0-1028-azure
+Intel(R) Xeon(R) Platinum 8272CL CPU @ 2.60GHz
Test create 1 item Set: Best Time(ms) Avg Time(ms)
Stdev(ms) Rate(M/s) Per Row(ns) Relative
------------------------------------------------------------------------------------------------------------------------
-Use HashSet 13 14
1 7.9 127.3 1.0X
-Use EnumSet 2 2
0 54.9 18.2 7.0X
+Use HashSet 16 17
1 6.4 156.6 1.0X
+Use EnumSet 2 2
0 59.7 16.7 9.4X
-OpenJDK 64-Bit Server VM 1.8.0_312-b07 on Linux 5.11.0-1022-azure
-Intel(R) Xeon(R) CPU E5-2673 v4 @ 2.30GHz
+OpenJDK 64-Bit Server VM 1.8.0_322-b06 on Linux 5.11.0-1028-azure
+Intel(R) Xeon(R) Platinum 8272CL CPU @ 2.60GHz
Test create 3 items Set: Best Time(ms) Avg Time(ms)
Stdev(ms) Rate(M/s) Per Row(ns) Relative
------------------------------------------------------------------------------------------------------------------------
-Use HashSet 41 43
2 2.4 408.2 1.0X
-Use EnumSet 2 2
0 66.0 15.1 27.0X
+Use HashSet 51 51
1 2.0 510.7 1.0X
+Use EnumSet 2 2
0 62.9 15.9 32.1X
-OpenJDK 64-Bit Server VM 1.8.0_312-b07 on Linux 5.11.0-1022-azure
-Intel(R) Xeon(R) CPU E5-2673 v4 @ 2.30GHz
+OpenJDK 64-Bit Server VM 1.8.0_322-b06 on Linux 5.11.0-1028-azure
+Intel(R) Xeon(R) Platinum 8272CL CPU @ 2.60GHz
Test create 5 items Set: Best Time(ms) Avg Time(ms)
Stdev(ms) Rate(M/s) Per Row(ns) Relative
------------------------------------------------------------------------------------------------------------------------
-Use HashSet 101 106
3 1.0 1010.4 1.0X
-Use EnumSet 2 2
0 60.4 16.6 61.0X
+Use HashSet 110 118
7 0.9 1099.9 1.0X
+Use EnumSet 2 2
0 58.4 17.1 64.3X
-OpenJDK 64-Bit Server VM 1.8.0_312-b07 on Linux 5.11.0-1022-azure
-Intel(R) Xeon(R) CPU E5-2673 v4 @ 2.30GHz
+OpenJDK 64-Bit Server VM 1.8.0_322-b06 on Linux 5.11.0-1028-azure
+Intel(R) Xeon(R) Platinum 8272CL CPU @ 2.60GHz
Test create 10 items Set: Best Time(ms) Avg Time(ms)
Stdev(ms) Rate(M/s) Per Row(ns) Relative
------------------------------------------------------------------------------------------------------------------------
-Use HashSet 157 164
3 0.6 1571.3 1.0X
-Use EnumSet 1 2
0 78.2 12.8 122.9X
+Use HashSet 144 145
1 0.7 1442.6 1.0X
+Use EnumSet 1 2
0 71.0 14.1 102.4X
-OpenJDK 64-Bit Server VM 1.8.0_312-b07 on Linux 5.11.0-1022-azure
-Intel(R) Xeon(R) CPU E5-2673 v4 @ 2.30GHz
+OpenJDK 64-Bit Server VM 1.8.0_322-b06 on Linux 5.11.0-1028-azure
+Intel(R) Xeon(R) Platinum 8272CL CPU @ 2.60GHz
Test create and contains use empty Set: Best Time(ms) Avg Time(ms)
Stdev(ms) Rate(M/s) Per Row(ns) Relative
------------------------------------------------------------------------------------------------------------------------
-Use HashSet 1 2
0 714.6 1.4 1.0X
-Use EnumSet 0 0
0 Infinity 0.0 InfinityX
+Use HashSet 1 1
0 816.8 1.2 1.0X
+Use EnumSet 2 2
0 484.0 2.1 0.6X
-OpenJDK 64-Bit Server VM 1.8.0_312-b07 on Linux 5.11.0-1022-azure
-Intel(R) Xeon(R) CPU E5-2673 v4 @ 2.30GHz
+OpenJDK 64-Bit Server VM 1.8.0_322-b06 on Linux 5.11.0-1028-azure
+Intel(R) Xeon(R) Platinum 8272CL CPU @ 2.60GHz
Test create and contains use 1 item Set: Best Time(ms) Avg Time(ms)
Stdev(ms) Rate(M/s) Per Row(ns) Relative
------------------------------------------------------------------------------------------------------------------------
-Use HashSet 38 42
2 26.5 37.7 1.0X
-Use EnumSet 0 0
0 Infinity 0.0 InfinityX
+Use HashSet 33 33
0 30.7 32.6 1.0X
+Use EnumSet 2 3
0 405.3 2.5 13.2X
-OpenJDK 64-Bit Server VM 1.8.0_312-b07 on Linux 5.11.0-1022-azure
-Intel(R) Xeon(R) CPU E5-2673 v4 @ 2.30GHz
+OpenJDK 64-Bit Server VM 1.8.0_322-b06 on Linux 5.11.0-1028-azure
+Intel(R) Xeon(R) Platinum 8272CL CPU @ 2.60GHz
Test create and contains use 3 items Set: Best Time(ms) Avg Time(ms)
Stdev(ms) Rate(M/s) Per Row(ns) Relative
------------------------------------------------------------------------------------------------------------------------
-Use HashSet 68 72
2 14.8 67.5 1.0X
-Use EnumSet 0 0
0 Infinity 0.0 InfinityX
+Use HashSet 76 76
1 13.2 75.6 1.0X
+Use EnumSet 2 3
0 400.6 2.5 30.3X
-OpenJDK 64-Bit Server VM 1.8.0_312-b07 on Linux 5.11.0-1022-azure
-Intel(R) Xeon(R) CPU E5-2673 v4 @ 2.30GHz
+OpenJDK 64-Bit Server VM 1.8.0_322-b06 on Linux 5.11.0-1028-azure
+Intel(R) Xeon(R) Platinum 8272CL CPU @ 2.60GHz
Test create and contains use 5 items Set: Best Time(ms) Avg Time(ms)
Stdev(ms) Rate(M/s) Per Row(ns) Relative
------------------------------------------------------------------------------------------------------------------------
-Use HashSet 151 160
4 6.6 150.8 1.0X
-Use EnumSet 0 0
0 Infinity 0.0 InfinityX
+Use HashSet 170 170
1 5.9 169.6 1.0X
+Use EnumSet 3 9
1 308.1 3.2 52.3X
-OpenJDK 64-Bit Server VM 1.8.0_312-b07 on Linux 5.11.0-1022-azure
-Intel(R) Xeon(R) CPU E5-2673 v4 @ 2.30GHz
+OpenJDK 64-Bit Server VM 1.8.0_322-b06 on Linux 5.11.0-1028-azure
+Intel(R) Xeon(R) Platinum 8272CL CPU @ 2.60GHz
Test create and contains use 10 items Set: Best Time(ms) Avg Time(ms)
Stdev(ms) Rate(M/s) Per Row(ns) Relative
-------------------------------------------------------------------------------------------------------------------------
-Use HashSet 209 223
12 4.8 208.5 1.0X
-Use EnumSet 0 0
0 Infinity 0.0 InfinityX
+Use HashSet 156 157
1 6.4 155.8 1.0X
+Use EnumSet 9 9
0 110.2 9.1 17.2X
diff --git
a/sql/catalyst/src/test/scala/org/apache/spark/sql/connector/catalog/EnumTypeSetBenchmark.scala
b/sql/catalyst/src/test/scala/org/apache/spark/sql/connector/catalog/EnumTypeSetBenchmark.scala
index a23ff6e..a918bae 100644
---
a/sql/catalyst/src/test/scala/org/apache/spark/sql/connector/catalog/EnumTypeSetBenchmark.scala
+++
b/sql/catalyst/src/test/scala/org/apache/spark/sql/connector/catalog/EnumTypeSetBenchmark.scala
@@ -106,7 +106,9 @@ object EnumTypeSetBenchmark extends BenchmarkBase {
}
benchmark.addCase("Use EnumSet") { _: Int =>
- capabilities.foreach(enumSet.contains)
+ for (_ <- 0L until valuesPerIteration) {
+ capabilities.foreach(enumSet.contains)
+ }
}
benchmark.run()
}
@@ -131,7 +133,9 @@ object EnumTypeSetBenchmark extends BenchmarkBase {
}
benchmark.addCase("Use EnumSet") { _: Int =>
- capabilities.foreach(creatEnumSetFunctions.apply().contains)
+ for (_ <- 0L until valuesPerIteration) {
+ capabilities.foreach(creatEnumSetFunctions.apply().contains)
+ }
}
benchmark.run()
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]