LuciferYang commented on code in PR #37843: URL: https://github.com/apache/spark/pull/37843#discussion_r967260907
########## sql/catalyst/src/main/java/org/apache/spark/sql/connector/util/V2ExpressionSQLBuilder.java: ########## @@ -393,4 +384,20 @@ private String joinListToString( } return joiner.toString(); } + + private String[] expressionsToStringArray(Expression[] expressions) { Review Comment: Ignore the complexity of `build(expressions[i])` compare ``` Arrays.stream(input).mapToObj(String::valueOf).toArray(String[]::new); ``` vs ``` String[] ret = new String[input.length]; for (int i = 0; i < input.length; i++) { ret[i] = String.valueOf(input[i]); } return ret; ``` with input size `1, 5, 10, 20, 50, 100, 500, 1000`: Java 8 ``` OpenJDK 64-Bit Server VM 1.8.0_345-b01 on Linux 5.15.0-1019-azure Intel(R) Xeon(R) Platinum 8370C CPU @ 2.80GHz Test map to String Array with input size 1: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative -------------------------------------------------------------------------------------------------------------------------- Use Arrays.steam api 5 6 1 18.8 53.3 1.0X Use Loop api 2 2 0 53.5 18.7 2.8X OpenJDK 64-Bit Server VM 1.8.0_345-b01 on Linux 5.15.0-1019-azure Intel(R) Xeon(R) Platinum 8370C CPU @ 2.80GHz Test map to String Array with input size 5: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative -------------------------------------------------------------------------------------------------------------------------- Use Arrays.steam api 11 11 0 9.4 106.1 1.0X Use Loop api 6 6 0 16.3 61.3 1.7X OpenJDK 64-Bit Server VM 1.8.0_345-b01 on Linux 5.15.0-1019-azure Intel(R) Xeon(R) Platinum 8370C CPU @ 2.80GHz Test map to String Array with input size 10: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative --------------------------------------------------------------------------------------------------------------------------- Use Arrays.steam api 17 17 0 6.1 165.2 1.0X Use Loop api 12 12 0 8.5 117.6 1.4X OpenJDK 64-Bit Server VM 1.8.0_345-b01 on Linux 5.15.0-1019-azure Intel(R) Xeon(R) Platinum 8370C CPU @ 2.80GHz Test map to String Array with input size 20: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative --------------------------------------------------------------------------------------------------------------------------- Use Arrays.steam api 30 31 0 3.3 301.1 1.0X Use Loop api 24 25 0 4.1 244.1 1.2X OpenJDK 64-Bit Server VM 1.8.0_345-b01 on Linux 5.15.0-1019-azure Intel(R) Xeon(R) Platinum 8370C CPU @ 2.80GHz Test map to String Array with input size 50: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative --------------------------------------------------------------------------------------------------------------------------- Use Arrays.steam api 69 70 0 1.5 689.3 1.0X Use Loop api 59 60 0 1.7 593.2 1.2X OpenJDK 64-Bit Server VM 1.8.0_345-b01 on Linux 5.15.0-1019-azure Intel(R) Xeon(R) Platinum 8370C CPU @ 2.80GHz Test map to String Array with input size 100: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative ---------------------------------------------------------------------------------------------------------------------------- Use Arrays.steam api 136 136 0 0.7 1361.4 1.0X Use Loop api 116 118 4 0.9 1162.4 1.2X OpenJDK 64-Bit Server VM 1.8.0_345-b01 on Linux 5.15.0-1019-azure Intel(R) Xeon(R) Platinum 8370C CPU @ 2.80GHz Test map to String Array with input size 500: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative ---------------------------------------------------------------------------------------------------------------------------- Use Arrays.steam api 704 705 2 0.1 7037.3 1.0X Use Loop api 663 665 2 0.2 6631.6 1.1X OpenJDK 64-Bit Server VM 1.8.0_345-b01 on Linux 5.15.0-1019-azure Intel(R) Xeon(R) Platinum 8370C CPU @ 2.80GHz Test map to String Array with input size 1000: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative ----------------------------------------------------------------------------------------------------------------------------- Use Arrays.steam api 1434 1463 41 0.1 14344.9 1.0X Use Loop api 1333 1345 17 0.1 13331.1 1.1X ``` Java 11 ``` OpenJDK 64-Bit Server VM 11.0.16+8-LTS on Linux 5.15.0-1019-azure Intel(R) Xeon(R) Platinum 8272CL CPU @ 2.60GHz Test map to String Array with input size 1: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative -------------------------------------------------------------------------------------------------------------------------- Use Arrays.steam api 6 7 1 16.1 62.2 1.0X Use Loop api 2 2 0 46.3 21.6 2.9X OpenJDK 64-Bit Server VM 11.0.16+8-LTS on Linux 5.15.0-1019-azure Intel(R) Xeon(R) Platinum 8272CL CPU @ 2.60GHz Test map to String Array with input size 5: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative -------------------------------------------------------------------------------------------------------------------------- Use Arrays.steam api 13 13 1 7.7 130.2 1.0X Use Loop api 7 7 0 15.0 66.7 2.0X OpenJDK 64-Bit Server VM 11.0.16+8-LTS on Linux 5.15.0-1019-azure Intel(R) Xeon(R) Platinum 8272CL CPU @ 2.60GHz Test map to String Array with input size 10: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative --------------------------------------------------------------------------------------------------------------------------- Use Arrays.steam api 21 21 1 4.8 209.2 1.0X Use Loop api 12 13 1 8.0 125.0 1.7X OpenJDK 64-Bit Server VM 11.0.16+8-LTS on Linux 5.15.0-1019-azure Intel(R) Xeon(R) Platinum 8272CL CPU @ 2.60GHz Test map to String Array with input size 20: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative --------------------------------------------------------------------------------------------------------------------------- Use Arrays.steam api 37 37 1 2.7 365.7 1.0X Use Loop api 25 26 1 4.0 251.7 1.5X OpenJDK 64-Bit Server VM 11.0.16+8-LTS on Linux 5.15.0-1019-azure Intel(R) Xeon(R) Platinum 8272CL CPU @ 2.60GHz Test map to String Array with input size 50: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative --------------------------------------------------------------------------------------------------------------------------- Use Arrays.steam api 82 83 1 1.2 815.7 1.0X Use Loop api 63 64 1 1.6 625.1 1.3X OpenJDK 64-Bit Server VM 11.0.16+8-LTS on Linux 5.15.0-1019-azure Intel(R) Xeon(R) Platinum 8272CL CPU @ 2.60GHz Test map to String Array with input size 100: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative ---------------------------------------------------------------------------------------------------------------------------- Use Arrays.steam api 156 157 1 0.6 1561.3 1.0X Use Loop api 125 126 1 0.8 1248.5 1.3X OpenJDK 64-Bit Server VM 11.0.16+8-LTS on Linux 5.15.0-1019-azure Intel(R) Xeon(R) Platinum 8272CL CPU @ 2.60GHz Test map to String Array with input size 500: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative ---------------------------------------------------------------------------------------------------------------------------- Use Arrays.steam api 888 892 4 0.1 8880.8 1.0X Use Loop api 711 713 2 0.1 7112.6 1.2X OpenJDK 64-Bit Server VM 11.0.16+8-LTS on Linux 5.15.0-1019-azure Intel(R) Xeon(R) Platinum 8272CL CPU @ 2.60GHz Test map to String Array with input size 1000: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative ----------------------------------------------------------------------------------------------------------------------------- Use Arrays.steam api 1810 1812 4 0.1 18096.4 1.0X Use Loop api 1438 1442 4 0.1 14384.3 1.3X ``` Java 17 ``` OpenJDK 64-Bit Server VM 17.0.4+8-LTS on Linux 5.15.0-1019-azure Intel(R) Xeon(R) Platinum 8272CL CPU @ 2.60GHz Test map to String Array with input size 1: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative -------------------------------------------------------------------------------------------------------------------------- Use Arrays.steam api 5 5 0 19.1 52.4 1.0X Use Loop api 2 2 0 53.4 18.7 2.8X OpenJDK 64-Bit Server VM 17.0.4+8-LTS on Linux 5.15.0-1019-azure Intel(R) Xeon(R) Platinum 8272CL CPU @ 2.60GHz Test map to String Array with input size 5: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative -------------------------------------------------------------------------------------------------------------------------- Use Arrays.steam api 11 11 0 9.5 105.6 1.0X Use Loop api 6 6 0 17.4 57.6 1.8X OpenJDK 64-Bit Server VM 17.0.4+8-LTS on Linux 5.15.0-1019-azure Intel(R) Xeon(R) Platinum 8272CL CPU @ 2.60GHz Test map to String Array with input size 10: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative --------------------------------------------------------------------------------------------------------------------------- Use Arrays.steam api 17 17 2 6.0 166.3 1.0X Use Loop api 11 11 0 9.4 106.6 1.6X OpenJDK 64-Bit Server VM 17.0.4+8-LTS on Linux 5.15.0-1019-azure Intel(R) Xeon(R) Platinum 8272CL CPU @ 2.60GHz Test map to String Array with input size 20: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative --------------------------------------------------------------------------------------------------------------------------- Use Arrays.steam api 31 32 1 3.2 313.6 1.0X Use Loop api 21 22 0 4.7 210.9 1.5X OpenJDK 64-Bit Server VM 17.0.4+8-LTS on Linux 5.15.0-1019-azure Intel(R) Xeon(R) Platinum 8272CL CPU @ 2.60GHz Test map to String Array with input size 50: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative --------------------------------------------------------------------------------------------------------------------------- Use Arrays.steam api 72 73 0 1.4 718.4 1.0X Use Loop api 53 54 1 1.9 533.0 1.3X OpenJDK 64-Bit Server VM 17.0.4+8-LTS on Linux 5.15.0-1019-azure Intel(R) Xeon(R) Platinum 8272CL CPU @ 2.60GHz Test map to String Array with input size 100: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative ---------------------------------------------------------------------------------------------------------------------------- Use Arrays.steam api 141 142 1 0.7 1409.8 1.0X Use Loop api 107 108 1 0.9 1066.5 1.3X OpenJDK 64-Bit Server VM 17.0.4+8-LTS on Linux 5.15.0-1019-azure Intel(R) Xeon(R) Platinum 8272CL CPU @ 2.60GHz Test map to String Array with input size 500: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative ---------------------------------------------------------------------------------------------------------------------------- Use Arrays.steam api 807 808 0 0.1 8074.0 1.0X Use Loop api 655 656 1 0.2 6546.1 1.2X OpenJDK 64-Bit Server VM 17.0.4+8-LTS on Linux 5.15.0-1019-azure Intel(R) Xeon(R) Platinum 8272CL CPU @ 2.60GHz Test map to String Array with input size 1000: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative ----------------------------------------------------------------------------------------------------------------------------- Use Arrays.steam api 1636 1637 1 0.1 16363.4 1.0X Use Loop api 1333 1337 5 0.1 13334.7 1.2X ``` -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: reviews-unsubscr...@spark.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: reviews-unsubscr...@spark.apache.org For additional commands, e-mail: reviews-h...@spark.apache.org