From 4c9d7b625c899fbe72c8fc4cad94fa4195630ab8 Mon Sep 17 00:00:00 2001 From: Anton Okolnychyi Date: Sat, 8 Dec 2018 14:17:59 +0000 Subject: [PATCH 1/7] [SPARK-26203][SQL] Benchmark performance of In and InSet expressions --- .../benchmarks/InSetBenchmark-results.txt | 201 +++++++++++++++++ .../org/apache/spark/sql/InSetBenchmark.scala | 213 ++++++++++++++++++ 2 files changed, 414 insertions(+) create mode 100644 sql/core/benchmarks/InSetBenchmark-results.txt create mode 100644 sql/core/src/test/scala/org/apache/spark/sql/InSetBenchmark.scala diff --git a/sql/core/benchmarks/InSetBenchmark-results.txt b/sql/core/benchmarks/InSetBenchmark-results.txt new file mode 100644 index 0000000000000..4cd3dc06b4847 --- /dev/null +++ b/sql/core/benchmarks/InSetBenchmark-results.txt @@ -0,0 +1,201 @@ +================================================================================================ +InSet Expression Benchmark +================================================================================================ + +Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 +Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +10 bytes: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative +------------------------------------------------------------------------------------------------ +In expression 53 / 65 190.5 5.3 1.0X +InSet expression 66 / 72 151.0 6.6 0.8X + +Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 +Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +50 bytes: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative +------------------------------------------------------------------------------------------------ +In expression 129 / 135 77.7 12.9 1.0X +InSet expression 135 / 140 74.1 13.5 1.0X + +Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 +Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +10 shorts: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative +------------------------------------------------------------------------------------------------ +In expression 36 / 39 280.8 3.6 1.0X +InSet expression 90 / 94 111.6 9.0 0.4X + +Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 +Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +100 shorts: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative +------------------------------------------------------------------------------------------------ +In expression 144 / 148 69.7 14.4 1.0X +InSet expression 99 / 105 100.6 9.9 1.4X + +Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 +Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +10 ints: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative +------------------------------------------------------------------------------------------------ +In expression 32 / 34 314.7 3.2 1.0X +InSet expression 126 / 134 79.5 12.6 0.3X + +Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 +Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +50 ints: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative +------------------------------------------------------------------------------------------------ +In expression 79 / 82 126.5 7.9 1.0X +InSet expression 162 / 170 61.9 16.2 0.5X + +Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 +Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +250 ints: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative +------------------------------------------------------------------------------------------------ +In expression 314 / 317 31.9 31.4 1.0X +InSet expression 136 / 141 73.6 13.6 2.3X + +Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 +Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +10 longs: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative +------------------------------------------------------------------------------------------------ +In expression 31 / 33 326.9 3.1 1.0X +InSet expression 105 / 112 94.9 10.5 0.3X + +Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 +Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +50 longs: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative +------------------------------------------------------------------------------------------------ +In expression 70 / 72 142.7 7.0 1.0X +InSet expression 143 / 147 69.7 14.3 0.5X + +Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 +Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +250 longs: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative +------------------------------------------------------------------------------------------------ +In expression 305 / 307 32.8 30.5 1.0X +InSet expression 115 / 119 86.7 11.5 2.6X + +Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 +Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +10 floats: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative +------------------------------------------------------------------------------------------------ +In expression 54 / 56 186.5 5.4 1.0X +InSet expression 126 / 130 79.4 12.6 0.4X + +Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 +Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +50 floats: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative +------------------------------------------------------------------------------------------------ +In expression 203 / 207 49.3 20.3 1.0X +InSet expression 164 / 168 61.0 16.4 1.2X + +Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 +Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +10 doubles: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative +------------------------------------------------------------------------------------------------ +In expression 54 / 56 185.1 5.4 1.0X +InSet expression 121 / 126 82.4 12.1 0.4X + +Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 +Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +50 doubles: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative +------------------------------------------------------------------------------------------------ +In expression 202 / 206 49.5 20.2 1.0X +InSet expression 162 / 167 61.9 16.2 1.2X + +Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 +Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +5 small decimals: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative +------------------------------------------------------------------------------------------------ +In expression 26 / 28 38.2 26.2 1.0X +InSet expression 70 / 75 14.2 70.4 0.4X + +Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 +Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +15 small decimals: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative +------------------------------------------------------------------------------------------------ +In expression 54 / 57 18.7 53.5 1.0X +InSet expression 74 / 78 13.6 73.8 0.7X + +Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 +Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +5 large decimals: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative +------------------------------------------------------------------------------------------------ +In expression 121 / 125 8.3 120.6 1.0X +InSet expression 89 / 94 11.3 88.6 1.4X + +Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 +Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +15 large decimals: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative +------------------------------------------------------------------------------------------------ +In expression 313 / 316 3.2 313.0 1.0X +InSet expression 92 / 96 10.8 92.2 3.4X + +Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 +Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +5 strings: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative +------------------------------------------------------------------------------------------------ +In expression 71 / 74 14.1 70.9 1.0X +InSet expression 80 / 84 12.4 80.4 0.9X + +Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 +Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +15 strings: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative +------------------------------------------------------------------------------------------------ +In expression 78 / 81 12.9 77.6 1.0X +InSet expression 83 / 87 12.0 83.2 0.9X + +Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 +Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +10 timestamps: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative +------------------------------------------------------------------------------------------------ +In expression 42 / 44 237.3 4.2 1.0X +InSet expression 104 / 109 96.4 10.4 0.4X + +Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 +Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +25 timestamps: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative +------------------------------------------------------------------------------------------------ +In expression 77 / 78 130.1 7.7 1.0X +InSet expression 127 / 131 78.6 12.7 0.6X + +Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 +Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +10 dates: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative +------------------------------------------------------------------------------------------------ +In expression 31 / 32 32.6 30.7 1.0X +InSet expression 36 / 38 27.6 36.3 0.8X + +Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 +Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +25 dates: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative +------------------------------------------------------------------------------------------------ +In expression 32 / 34 31.1 32.1 1.0X +InSet expression 37 / 39 26.9 37.2 0.9X + +Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 +Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +5 arrays: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative +------------------------------------------------------------------------------------------------ +In expression 25 / 27 39.3 25.4 1.0X +InSet expression 48 / 51 20.6 48.5 0.5X + +Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 +Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +15 arrays: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative +------------------------------------------------------------------------------------------------ +In expression 80 / 83 12.5 80.0 1.0X +InSet expression 70 / 73 14.4 69.5 1.2X + +Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 +Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +5 structs: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative +------------------------------------------------------------------------------------------------ +In expression 23 / 25 43.7 22.9 1.0X +InSet expression 82 / 85 12.2 81.8 0.3X + +Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 +Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +15 structs: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative +------------------------------------------------------------------------------------------------ +In expression 37 / 39 27.3 36.6 1.0X +InSet expression 125 / 129 8.0 124.5 0.3X + + diff --git a/sql/core/src/test/scala/org/apache/spark/sql/InSetBenchmark.scala b/sql/core/src/test/scala/org/apache/spark/sql/InSetBenchmark.scala new file mode 100644 index 0000000000000..bb8f1d80dc1a3 --- /dev/null +++ b/sql/core/src/test/scala/org/apache/spark/sql/InSetBenchmark.scala @@ -0,0 +1,213 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.spark.sql + +import org.apache.spark.benchmark.Benchmark +import org.apache.spark.sql.catalyst.expressions.In +import org.apache.spark.sql.catalyst.expressions.InSet +import org.apache.spark.sql.execution.benchmark.SqlBasedBenchmark +import org.apache.spark.sql.functions.{array, struct} +import org.apache.spark.sql.internal.SQLConf +import org.apache.spark.sql.types._ + +/** + * A benchmark that compares the performance of [[In]] and [[InSet]] expressions. + * + * To run this benchmark: + * {{{ + * 1. without sbt: bin/spark-submit --class + * 2. build/sbt "sql/test:runMain " + * 3. generate result: SPARK_GENERATE_BENCHMARK_FILES=1 build/sbt "sql/test:runMain " + * Results will be written to "benchmarks/InSetBenchmark-results.txt". + * }}} + */ +object InSetBenchmark extends SqlBasedBenchmark { + + import spark.implicits._ + + def byteBenchmark(numItems: Int, numRows: Long, minNumIters: Int): Benchmark = { + val name = s"$numItems bytes" + val values = (1 to numItems).map(v => s"CAST($v AS tinyint)") + val df = spark.range(1, numRows).select($"id".cast(ByteType)) + benchmark(name, df, values, numRows, minNumIters) + } + + def shortBenchmark(numItems: Int, numRows: Long, minNumIters: Int): Benchmark = { + val name = s"$numItems shorts" + val values = (1 to numItems).map(v => s"CAST($v AS smallint)") + val df = spark.range(1, numRows).select($"id".cast(ShortType)) + benchmark(name, df, values, numRows, minNumIters) + } + + def intBenchmark(numItems: Int, numRows: Long, minNumIters: Int): Benchmark = { + val name = s"$numItems ints" + val values = 1 to numItems + val df = spark.range(1, numRows).select($"id".cast(IntegerType)) + benchmark(name, df, values, numRows, minNumIters) + } + + def longBenchmark(numItems: Int, numRows: Long, minNumIters: Int): Benchmark = { + val name = s"$numItems longs" + val values = (1 to numItems).map(v => s"${v}L") + val df = spark.range(1, numRows).toDF("id") + benchmark(name, df, values, numRows, minNumIters) + } + + def floatBenchmark(numItems: Int, numRows: Long, minNumIters: Int): Benchmark = { + val name = s"$numItems floats" + val values = (1 to numItems).map(v => s"CAST($v AS float)") + val df = spark.range(1, numRows).select($"id".cast(FloatType)) + benchmark(name, df, values, numRows, minNumIters) + } + + def doubleBenchmark(numItems: Int, numRows: Long, minNumIters: Int): Benchmark = { + val name = s"$numItems doubles" + val values = 1.0 to numItems by 1.0 + val df = spark.range(1, numRows).select($"id".cast(DoubleType)) + benchmark(name, df, values, numRows, minNumIters) + } + + def smallDecimalBenchmark(numItems: Int, numRows: Long, minNumIters: Int): Benchmark = { + val name = s"$numItems small decimals" + val values = (1 to numItems).map(v => s"CAST($v AS decimal(12, 1))") + val df = spark.range(1, numRows).select($"id".cast(DecimalType(12, 1))) + benchmark(name, df, values, numRows, minNumIters) + } + + def largeDecimalBenchmark(numItems: Int, numRows: Long, minNumIters: Int): Benchmark = { + val name = s"$numItems large decimals" + val values = (1 to numItems).map(v => s"9223372036854775812.10539$v") + val df = spark.range(1, numRows).select($"id".cast(DecimalType(30, 7))) + benchmark(name, df, values, numRows, minNumIters) + } + + def stringBenchmark(numItems: Int, numRows: Long, minNumIters: Int): Benchmark = { + val name = s"$numItems strings" + val values = (1 to numItems).map(n => s"'$n'") + val df = spark.range(1, numRows).select($"id".cast(StringType)) + benchmark(name, df, values, numRows, minNumIters) + } + + def timestampBenchmark(numItems: Int, numRows: Long, minNumIters: Int): Benchmark = { + val name = s"$numItems timestamps" + val values = (1 to numItems).map(m => s"CAST('1970-01-01 01:00:$m' AS timestamp)") + val df = spark.range(1, numRows).select($"id".cast(TimestampType)) + benchmark(name, df, values, numRows, minNumIters) + } + + def dateBenchmark(numItems: Int, numRows: Long, minNumIters: Int): Benchmark = { + val name = s"$numItems dates" + val values = (1 to numItems).map(n => 1970 + n).map(y => s"CAST('$y-01-01' AS date)") + val df = spark.range(1, numRows).select($"id".cast(TimestampType).cast(DateType)) + benchmark(name, df, values, numRows, minNumIters) + } + + def arrayBenchmark(numItems: Int, numRows: Long, minNumIters: Int): Benchmark = { + val name = s"$numItems arrays" + val values = (1 to numItems).map(i => s"array($i)") + val df = spark.range(1, numRows).select(array($"id").as("id")) + benchmark(name, df, values, numRows, minNumIters) + } + + def structBenchmark(numItems: Int, numRows: Long, minNumIters: Int): Benchmark = { + val name = s"$numItems structs" + val values = (1 to numItems).map(i => s"struct($i)") + val df = spark.range(1, numRows).select(struct($"id".as("col1")).as("id")) + benchmark(name, df, values, numRows, minNumIters) + } + + def benchmark( + name: String, + df: DataFrame, + values: Seq[Any], + numRows: Long, + minNumIters: Int): Benchmark = { + + val benchmark = new Benchmark(name, numRows, minNumIters, output = output) + + df.createOrReplaceTempView("t") + + def testClosure(): Unit = { + val df = spark.sql(s"SELECT * FROM t WHERE id IN (${values mkString ","})") + df.queryExecution.toRdd.foreach(_ => Unit) + } + + benchmark.addCase("In expression") { _ => + withSQLConf(SQLConf.OPTIMIZER_INSET_CONVERSION_THRESHOLD.key -> values.size.toString) { + testClosure() + } + } + + benchmark.addCase("InSet expression") { _ => + withSQLConf(SQLConf.OPTIMIZER_INSET_CONVERSION_THRESHOLD.key -> "1") { + testClosure() + } + } + + benchmark + } + + override def runBenchmarkSuite(mainArgs: Array[String]): Unit = { + val largeNumRows = 10000000 + val smallNumRows = 1000000 + val minNumIters = 5 + + runBenchmark("InSet Expression Benchmark") { + byteBenchmark(numItems = 10, largeNumRows, minNumIters).run() + byteBenchmark(numItems = 50, largeNumRows, minNumIters).run() + + shortBenchmark(numItems = 10, largeNumRows, minNumIters).run() + shortBenchmark(numItems = 100, largeNumRows, minNumIters).run() + + intBenchmark(numItems = 10, largeNumRows, minNumIters).run() + intBenchmark(numItems = 50, largeNumRows, minNumIters).run() + intBenchmark(numItems = 250, largeNumRows, minNumIters).run() + + longBenchmark(numItems = 10, largeNumRows, minNumIters).run() + longBenchmark(numItems = 50, largeNumRows, minNumIters).run() + longBenchmark(numItems = 250, largeNumRows, minNumIters).run() + + floatBenchmark(numItems = 10, largeNumRows, minNumIters).run() + floatBenchmark(numItems = 50, largeNumRows, minNumIters).run() + + doubleBenchmark(numItems = 10, largeNumRows, minNumIters).run() + doubleBenchmark(numItems = 50, largeNumRows, minNumIters).run() + + smallDecimalBenchmark(numItems = 5, smallNumRows, minNumIters).run() + smallDecimalBenchmark(numItems = 15, smallNumRows, minNumIters).run() + + largeDecimalBenchmark(numItems = 5, smallNumRows, minNumIters).run() + largeDecimalBenchmark(numItems = 15, smallNumRows, minNumIters).run() + + stringBenchmark(numItems = 5, smallNumRows, minNumIters).run() + stringBenchmark(numItems = 15, smallNumRows, minNumIters).run() + + timestampBenchmark(numItems = 10, largeNumRows, minNumIters).run() + timestampBenchmark(numItems = 25, largeNumRows, minNumIters).run() + + dateBenchmark(numItems = 10, smallNumRows, minNumIters).run() + dateBenchmark(numItems = 25, smallNumRows, minNumIters).run() + + arrayBenchmark(numItems = 5, smallNumRows, minNumIters).run() + arrayBenchmark(numItems = 15, smallNumRows, minNumIters).run() + + structBenchmark(numItems = 5, smallNumRows, minNumIters).run() + structBenchmark(numItems = 15, smallNumRows, minNumIters).run() + } + } +} From 1cbf93dc6687bc1eaac5b5529d4edc7e65001497 Mon Sep 17 00:00:00 2001 From: Anton Okolnychyi Date: Tue, 11 Dec 2018 23:16:56 +0000 Subject: [PATCH 2/7] [SPARK-26203][SQL] Address first comments --- .../benchmarks/InSetBenchmark-results.txt | 385 +++++++++++++++--- .../org/apache/spark/sql/InSetBenchmark.scala | 177 ++++---- 2 files changed, 429 insertions(+), 133 deletions(-) diff --git a/sql/core/benchmarks/InSetBenchmark-results.txt b/sql/core/benchmarks/InSetBenchmark-results.txt index 4cd3dc06b4847..1c394e2278a4b 100644 --- a/sql/core/benchmarks/InSetBenchmark-results.txt +++ b/sql/core/benchmarks/InSetBenchmark-results.txt @@ -2,200 +2,459 @@ InSet Expression Benchmark ================================================================================================ +Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 +Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +5 bytes: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative +------------------------------------------------------------------------------------------------ +In expression 41 / 52 243.0 4.1 1.0X +InSet expression 58 / 61 172.6 5.8 0.7X + Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 10 bytes: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 53 / 65 190.5 5.3 1.0X -InSet expression 66 / 72 151.0 6.6 0.8X +In expression 47 / 50 212.3 4.7 1.0X +InSet expression 63 / 66 159.3 6.3 0.7X + +Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 +Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +25 bytes: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative +------------------------------------------------------------------------------------------------ +In expression 77 / 81 129.5 7.7 1.0X +InSet expression 86 / 89 116.3 8.6 0.9X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 50 bytes: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 129 / 135 77.7 12.9 1.0X -InSet expression 135 / 140 74.1 13.5 1.0X +In expression 125 / 130 79.8 12.5 1.0X +InSet expression 133 / 148 75.4 13.3 0.9X + +Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 +Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +100 bytes: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative +------------------------------------------------------------------------------------------------ +In expression 224 / 229 44.7 22.4 1.0X +InSet expression 206 / 214 48.5 20.6 1.1X + +Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 +Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +5 shorts: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative +------------------------------------------------------------------------------------------------ +In expression 30 / 34 333.5 3.0 1.0X +InSet expression 111 / 115 89.8 11.1 0.3X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 10 shorts: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 36 / 39 280.8 3.6 1.0X -InSet expression 90 / 94 111.6 9.0 0.4X +In expression 35 / 36 289.9 3.5 1.0X +InSet expression 123 / 127 81.4 12.3 0.3X + +Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 +Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +25 shorts: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative +------------------------------------------------------------------------------------------------ +In expression 51 / 53 196.1 5.1 1.0X +InSet expression 125 / 130 79.9 12.5 0.4X + +Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 +Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +50 shorts: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative +------------------------------------------------------------------------------------------------ +In expression 82 / 85 122.0 8.2 1.0X +InSet expression 160 / 163 62.6 16.0 0.5X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 100 shorts: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 144 / 148 69.7 14.4 1.0X -InSet expression 99 / 105 100.6 9.9 1.4X +In expression 144 / 150 69.2 14.4 1.0X +InSet expression 137 / 142 72.9 13.7 1.1X + +Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 +Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +5 ints: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative +------------------------------------------------------------------------------------------------ +In expression 27 / 29 375.4 2.7 1.0X +InSet expression 104 / 113 95.8 10.4 0.3X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 10 ints: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 32 / 34 314.7 3.2 1.0X -InSet expression 126 / 134 79.5 12.6 0.3X +In expression 33 / 35 300.2 3.3 1.0X +InSet expression 116 / 126 86.4 11.6 0.3X + +Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 +Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +25 ints: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative +------------------------------------------------------------------------------------------------ +In expression 50 / 53 198.6 5.0 1.0X +InSet expression 121 / 124 82.6 12.1 0.4X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 50 ints: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 79 / 82 126.5 7.9 1.0X -InSet expression 162 / 170 61.9 16.2 0.5X +In expression 79 / 82 126.1 7.9 1.0X +InSet expression 156 / 159 64.3 15.6 0.5X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz -250 ints: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative +100 ints: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 314 / 317 31.9 31.4 1.0X -InSet expression 136 / 141 73.6 13.6 2.3X +In expression 138 / 141 72.3 13.8 1.0X +InSet expression 131 / 134 76.3 13.1 1.1X + +Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 +Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +5 longs: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative +------------------------------------------------------------------------------------------------ +In expression 24 / 25 409.6 2.4 1.0X +InSet expression 93 / 98 108.1 9.3 0.3X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 10 longs: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 31 / 33 326.9 3.1 1.0X -InSet expression 105 / 112 94.9 10.5 0.3X +In expression 23 / 25 429.0 2.3 1.0X +InSet expression 107 / 109 93.6 10.7 0.2X + +Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 +Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +25 longs: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative +------------------------------------------------------------------------------------------------ +In expression 42 / 44 237.7 4.2 1.0X +InSet expression 108 / 112 92.4 10.8 0.4X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 50 longs: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 70 / 72 142.7 7.0 1.0X -InSet expression 143 / 147 69.7 14.3 0.5X +In expression 70 / 73 142.2 7.0 1.0X +InSet expression 140 / 143 71.2 14.0 0.5X + +Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 +Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +100 longs: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative +------------------------------------------------------------------------------------------------ +In expression 130 / 137 77.2 13.0 1.0X +InSet expression 112 / 116 89.2 11.2 1.2X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz -250 longs: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative +5 floats: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 305 / 307 32.8 30.5 1.0X -InSet expression 115 / 119 86.7 11.5 2.6X +In expression 36 / 38 278.3 3.6 1.0X +InSet expression 107 / 111 93.7 10.7 0.3X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 10 floats: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 54 / 56 186.5 5.4 1.0X -InSet expression 126 / 130 79.4 12.6 0.4X +In expression 53 / 56 189.1 5.3 1.0X +InSet expression 125 / 128 80.0 12.5 0.4X + +Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 +Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +25 floats: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative +------------------------------------------------------------------------------------------------ +In expression 109 / 110 92.2 10.9 1.0X +InSet expression 128 / 133 78.4 12.8 0.9X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 50 floats: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 203 / 207 49.3 20.3 1.0X -InSet expression 164 / 168 61.0 16.4 1.2X +In expression 202 / 205 49.6 20.2 1.0X +InSet expression 165 / 168 60.7 16.5 1.2X + +Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 +Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +100 floats: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative +------------------------------------------------------------------------------------------------ +In expression 393 / 396 25.5 39.3 1.0X +InSet expression 128 / 133 78.3 12.8 3.1X + +Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 +Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +5 doubles: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative +------------------------------------------------------------------------------------------------ +In expression 35 / 37 285.7 3.5 1.0X +InSet expression 104 / 108 96.4 10.4 0.3X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 10 doubles: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 54 / 56 185.1 5.4 1.0X -InSet expression 121 / 126 82.4 12.1 0.4X +In expression 53 / 57 187.5 5.3 1.0X +InSet expression 120 / 124 83.1 12.0 0.4X + +Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 +Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +25 doubles: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative +------------------------------------------------------------------------------------------------ +In expression 108 / 110 92.8 10.8 1.0X +InSet expression 124 / 128 80.9 12.4 0.9X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 50 doubles: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 202 / 206 49.5 20.2 1.0X -InSet expression 162 / 167 61.9 16.2 1.2X +In expression 201 / 204 49.6 20.1 1.0X +InSet expression 162 / 167 61.6 16.2 1.2X + +Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 +Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +100 doubles: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative +------------------------------------------------------------------------------------------------ +In expression 387 / 389 25.8 38.7 1.0X +InSet expression 129 / 136 77.4 12.9 3.0X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 5 small decimals: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 26 / 28 38.2 26.2 1.0X -InSet expression 70 / 75 14.2 70.4 0.4X +In expression 26 / 27 38.8 25.8 1.0X +InSet expression 71 / 74 14.1 71.2 0.4X + +Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 +Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +10 small decimals: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative +------------------------------------------------------------------------------------------------ +In expression 40 / 42 24.9 40.2 1.0X +InSet expression 73 / 77 13.6 73.5 0.5X + +Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 +Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +25 small decimals: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative +------------------------------------------------------------------------------------------------ +In expression 78 / 81 12.8 78.1 1.0X +InSet expression 74 / 77 13.6 73.5 1.1X + +Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 +Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +50 small decimals: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative +------------------------------------------------------------------------------------------------ +In expression 144 / 147 6.9 144.1 1.0X +InSet expression 80 / 83 12.6 79.6 1.8X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz -15 small decimals: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative +100 small decimals: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 54 / 57 18.7 53.5 1.0X -InSet expression 74 / 78 13.6 73.8 0.7X +In expression 274 / 279 3.7 274.0 1.0X +InSet expression 80 / 89 12.5 80.0 3.4X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 5 large decimals: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 121 / 125 8.3 120.6 1.0X -InSet expression 89 / 94 11.3 88.6 1.4X +In expression 124 / 130 8.1 124.1 1.0X +InSet expression 87 / 92 11.5 86.6 1.4X + +Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 +Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +10 large decimals: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative +------------------------------------------------------------------------------------------------ +In expression 213 / 216 4.7 213.0 1.0X +InSet expression 89 / 93 11.2 89.4 2.4X + +Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 +Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +25 large decimals: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative +------------------------------------------------------------------------------------------------ +In expression 532 / 537 1.9 532.5 1.0X +InSet expression 94 / 97 10.6 94.4 5.6X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz -15 large decimals: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative +50 large decimals: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 313 / 316 3.2 313.0 1.0X -InSet expression 92 / 96 10.8 92.2 3.4X +In expression 1016 / 1026 1.0 1016.5 1.0X +InSet expression 95 / 103 10.5 95.4 10.7X + +Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 +Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +100 large decimals: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative +------------------------------------------------------------------------------------------------ +In expression 2035 / 2070 0.5 2035.0 1.0X +InSet expression 107 / 110 9.4 106.6 19.1X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 5 strings: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 71 / 74 14.1 70.9 1.0X -InSet expression 80 / 84 12.4 80.4 0.9X +In expression 71 / 74 14.0 71.4 1.0X +InSet expression 82 / 85 12.2 82.0 0.9X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz -15 strings: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative +10 strings: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 78 / 81 12.9 77.6 1.0X -InSet expression 83 / 87 12.0 83.2 0.9X +In expression 73 / 76 13.6 73.5 1.0X +InSet expression 90 / 126 11.1 89.9 0.8X + +Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 +Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +25 strings: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative +------------------------------------------------------------------------------------------------ +In expression 85 / 91 11.8 84.6 1.0X +InSet expression 89 / 97 11.2 89.1 1.0X + +Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 +Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +50 strings: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative +------------------------------------------------------------------------------------------------ +In expression 102 / 106 9.8 102.4 1.0X +InSet expression 89 / 93 11.3 88.8 1.2X + +Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 +Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +100 strings: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative +------------------------------------------------------------------------------------------------ +In expression 154 / 160 6.5 153.6 1.0X +InSet expression 86 / 94 11.6 86.1 1.8X + +Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 +Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +5 timestamps: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative +------------------------------------------------------------------------------------------------ +In expression 30 / 31 336.8 3.0 1.0X +InSet expression 93 / 95 108.0 9.3 0.3X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 10 timestamps: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 42 / 44 237.3 4.2 1.0X -InSet expression 104 / 109 96.4 10.4 0.4X +In expression 41 / 44 244.1 4.1 1.0X +InSet expression 102 / 105 98.0 10.2 0.4X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 25 timestamps: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 77 / 78 130.1 7.7 1.0X -InSet expression 127 / 131 78.6 12.7 0.6X +In expression 75 / 77 132.8 7.5 1.0X +InSet expression 126 / 130 79.1 12.6 0.6X + +Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 +Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +50 timestamps: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative +------------------------------------------------------------------------------------------------ +In expression 131 / 133 76.1 13.1 1.0X +InSet expression 139 / 143 72.0 13.9 0.9X + +Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 +Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +100 timestamps: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative +------------------------------------------------------------------------------------------------ +In expression 154 / 156 64.9 15.4 1.0X +InSet expression 130 / 138 76.7 13.0 1.2X + +Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 +Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +5 dates: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative +------------------------------------------------------------------------------------------------ +In expression 28 / 30 35.3 28.3 1.0X +InSet expression 35 / 38 28.7 34.8 0.8X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 10 dates: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 31 / 32 32.6 30.7 1.0X -InSet expression 36 / 38 27.6 36.3 0.8X +In expression 26 / 27 37.9 26.4 1.0X +InSet expression 35 / 37 28.3 35.4 0.7X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 25 dates: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 32 / 34 31.1 32.1 1.0X -InSet expression 37 / 39 26.9 37.2 0.9X +In expression 32 / 33 31.7 31.6 1.0X +InSet expression 36 / 38 27.7 36.1 0.9X + +Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 +Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +50 dates: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative +------------------------------------------------------------------------------------------------ +In expression 37 / 39 26.7 37.5 1.0X +InSet expression 38 / 39 26.5 37.7 1.0X + +Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 +Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +100 dates: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative +------------------------------------------------------------------------------------------------ +In expression 46 / 47 21.6 46.2 1.0X +InSet expression 40 / 41 24.8 40.3 1.1X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 5 arrays: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 25 / 27 39.3 25.4 1.0X -InSet expression 48 / 51 20.6 48.5 0.5X +In expression 24 / 26 40.9 24.4 1.0X +InSet expression 47 / 49 21.2 47.2 0.5X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz -15 arrays: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative +10 arrays: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 80 / 83 12.5 80.0 1.0X -InSet expression 70 / 73 14.4 69.5 1.2X +In expression 39 / 40 25.8 38.7 1.0X +InSet expression 47 / 50 21.1 47.4 0.8X + +Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 +Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +25 arrays: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative +------------------------------------------------------------------------------------------------ +In expression 156 / 159 6.4 156.0 1.0X +InSet expression 59 / 61 17.0 58.8 2.7X + +Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 +Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +50 arrays: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative +------------------------------------------------------------------------------------------------ +In expression 325 / 336 3.1 325.1 1.0X +InSet expression 81 / 83 12.4 80.7 4.0X + +Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 +Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +100 arrays: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative +------------------------------------------------------------------------------------------------ +In expression 691 / 704 1.4 690.6 1.0X +InSet expression 96 / 101 10.4 96.1 7.2X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 5 structs: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 23 / 25 43.7 22.9 1.0X -InSet expression 82 / 85 12.2 81.8 0.3X +In expression 23 / 26 44.0 22.7 1.0X +InSet expression 83 / 89 12.0 83.2 0.3X + +Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 +Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +10 structs: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative +------------------------------------------------------------------------------------------------ +In expression 29 / 32 34.0 29.4 1.0X +InSet expression 84 / 89 11.8 84.4 0.3X + +Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 +Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +25 structs: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative +------------------------------------------------------------------------------------------------ +In expression 71 / 74 14.1 71.0 1.0X +InSet expression 107 / 112 9.3 107.5 0.7X + +Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 +Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +50 structs: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative +------------------------------------------------------------------------------------------------ +In expression 204 / 208 4.9 203.8 1.0X +InSet expression 153 / 163 6.5 153.2 1.3X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz -15 structs: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative +100 structs: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 37 / 39 27.3 36.6 1.0X -InSet expression 125 / 129 8.0 124.5 0.3X +In expression 505 / 514 2.0 505.1 1.0X +InSet expression 186 / 189 5.4 185.5 2.7X diff --git a/sql/core/src/test/scala/org/apache/spark/sql/InSetBenchmark.scala b/sql/core/src/test/scala/org/apache/spark/sql/InSetBenchmark.scala index bb8f1d80dc1a3..ddd005f9e601b 100644 --- a/sql/core/src/test/scala/org/apache/spark/sql/InSetBenchmark.scala +++ b/sql/core/src/test/scala/org/apache/spark/sql/InSetBenchmark.scala @@ -40,110 +40,110 @@ object InSetBenchmark extends SqlBasedBenchmark { import spark.implicits._ - def byteBenchmark(numItems: Int, numRows: Long, minNumIters: Int): Benchmark = { + private def runByteBenchmark(numItems: Int, numRows: Long, minNumIters: Int): Unit = { val name = s"$numItems bytes" val values = (1 to numItems).map(v => s"CAST($v AS tinyint)") val df = spark.range(1, numRows).select($"id".cast(ByteType)) - benchmark(name, df, values, numRows, minNumIters) + runBenchmark(name, df, values, numRows, minNumIters) } - def shortBenchmark(numItems: Int, numRows: Long, minNumIters: Int): Benchmark = { + private def runShortBenchmark(numItems: Int, numRows: Long, minNumIters: Int): Unit = { val name = s"$numItems shorts" val values = (1 to numItems).map(v => s"CAST($v AS smallint)") val df = spark.range(1, numRows).select($"id".cast(ShortType)) - benchmark(name, df, values, numRows, minNumIters) + runBenchmark(name, df, values, numRows, minNumIters) } - def intBenchmark(numItems: Int, numRows: Long, minNumIters: Int): Benchmark = { + private def runIntBenchmark(numItems: Int, numRows: Long, minNumIters: Int): Unit = { val name = s"$numItems ints" val values = 1 to numItems val df = spark.range(1, numRows).select($"id".cast(IntegerType)) - benchmark(name, df, values, numRows, minNumIters) + runBenchmark(name, df, values, numRows, minNumIters) } - def longBenchmark(numItems: Int, numRows: Long, minNumIters: Int): Benchmark = { + private def runLongBenchmark(numItems: Int, numRows: Long, minNumIters: Int): Unit = { val name = s"$numItems longs" val values = (1 to numItems).map(v => s"${v}L") val df = spark.range(1, numRows).toDF("id") - benchmark(name, df, values, numRows, minNumIters) + runBenchmark(name, df, values, numRows, minNumIters) } - def floatBenchmark(numItems: Int, numRows: Long, minNumIters: Int): Benchmark = { + private def runFloatBenchmark(numItems: Int, numRows: Long, minNumIters: Int): Unit = { val name = s"$numItems floats" val values = (1 to numItems).map(v => s"CAST($v AS float)") val df = spark.range(1, numRows).select($"id".cast(FloatType)) - benchmark(name, df, values, numRows, minNumIters) + runBenchmark(name, df, values, numRows, minNumIters) } - def doubleBenchmark(numItems: Int, numRows: Long, minNumIters: Int): Benchmark = { + private def runDoubleBenchmark(numItems: Int, numRows: Long, minNumIters: Int): Unit = { val name = s"$numItems doubles" val values = 1.0 to numItems by 1.0 val df = spark.range(1, numRows).select($"id".cast(DoubleType)) - benchmark(name, df, values, numRows, minNumIters) + runBenchmark(name, df, values, numRows, minNumIters) } - def smallDecimalBenchmark(numItems: Int, numRows: Long, minNumIters: Int): Benchmark = { + private def runSmallDecimalBenchmark(numItems: Int, numRows: Long, minNumIters: Int): Unit = { val name = s"$numItems small decimals" val values = (1 to numItems).map(v => s"CAST($v AS decimal(12, 1))") val df = spark.range(1, numRows).select($"id".cast(DecimalType(12, 1))) - benchmark(name, df, values, numRows, minNumIters) + runBenchmark(name, df, values, numRows, minNumIters) } - def largeDecimalBenchmark(numItems: Int, numRows: Long, minNumIters: Int): Benchmark = { + private def runLargeDecimalBenchmark(numItems: Int, numRows: Long, minNumIters: Int): Unit = { val name = s"$numItems large decimals" val values = (1 to numItems).map(v => s"9223372036854775812.10539$v") val df = spark.range(1, numRows).select($"id".cast(DecimalType(30, 7))) - benchmark(name, df, values, numRows, minNumIters) + runBenchmark(name, df, values, numRows, minNumIters) } - def stringBenchmark(numItems: Int, numRows: Long, minNumIters: Int): Benchmark = { + private def runStringBenchmark(numItems: Int, numRows: Long, minNumIters: Int): Unit = { val name = s"$numItems strings" val values = (1 to numItems).map(n => s"'$n'") val df = spark.range(1, numRows).select($"id".cast(StringType)) - benchmark(name, df, values, numRows, minNumIters) + runBenchmark(name, df, values, numRows, minNumIters) } - def timestampBenchmark(numItems: Int, numRows: Long, minNumIters: Int): Benchmark = { + private def runTimestampBenchmark(numItems: Int, numRows: Long, minNumIters: Int): Unit = { val name = s"$numItems timestamps" val values = (1 to numItems).map(m => s"CAST('1970-01-01 01:00:$m' AS timestamp)") val df = spark.range(1, numRows).select($"id".cast(TimestampType)) - benchmark(name, df, values, numRows, minNumIters) + runBenchmark(name, df, values, numRows, minNumIters) } - def dateBenchmark(numItems: Int, numRows: Long, minNumIters: Int): Benchmark = { + private def runDateBenchmark(numItems: Int, numRows: Long, minNumIters: Int): Unit = { val name = s"$numItems dates" val values = (1 to numItems).map(n => 1970 + n).map(y => s"CAST('$y-01-01' AS date)") val df = spark.range(1, numRows).select($"id".cast(TimestampType).cast(DateType)) - benchmark(name, df, values, numRows, minNumIters) + runBenchmark(name, df, values, numRows, minNumIters) } - def arrayBenchmark(numItems: Int, numRows: Long, minNumIters: Int): Benchmark = { + private def runArrayBenchmark(numItems: Int, numRows: Long, minNumIters: Int): Unit = { val name = s"$numItems arrays" val values = (1 to numItems).map(i => s"array($i)") val df = spark.range(1, numRows).select(array($"id").as("id")) - benchmark(name, df, values, numRows, minNumIters) + runBenchmark(name, df, values, numRows, minNumIters) } - def structBenchmark(numItems: Int, numRows: Long, minNumIters: Int): Benchmark = { + private def runStructBenchmark(numItems: Int, numRows: Long, minNumIters: Int): Unit = { val name = s"$numItems structs" val values = (1 to numItems).map(i => s"struct($i)") val df = spark.range(1, numRows).select(struct($"id".as("col1")).as("id")) - benchmark(name, df, values, numRows, minNumIters) + runBenchmark(name, df, values, numRows, minNumIters) } - def benchmark( + private def runBenchmark( name: String, df: DataFrame, values: Seq[Any], numRows: Long, - minNumIters: Int): Benchmark = { + minNumIters: Int): Unit = { val benchmark = new Benchmark(name, numRows, minNumIters, output = output) df.createOrReplaceTempView("t") def testClosure(): Unit = { - val df = spark.sql(s"SELECT * FROM t WHERE id IN (${values mkString ","})") + val df = spark.sql(s"SELECT * FROM t WHERE id IN (${values.mkString(",")})") df.queryExecution.toRdd.foreach(_ => Unit) } @@ -159,7 +159,7 @@ object InSetBenchmark extends SqlBasedBenchmark { } } - benchmark + benchmark.run() } override def runBenchmarkSuite(mainArgs: Array[String]): Unit = { @@ -168,46 +168,83 @@ object InSetBenchmark extends SqlBasedBenchmark { val minNumIters = 5 runBenchmark("InSet Expression Benchmark") { - byteBenchmark(numItems = 10, largeNumRows, minNumIters).run() - byteBenchmark(numItems = 50, largeNumRows, minNumIters).run() - - shortBenchmark(numItems = 10, largeNumRows, minNumIters).run() - shortBenchmark(numItems = 100, largeNumRows, minNumIters).run() - - intBenchmark(numItems = 10, largeNumRows, minNumIters).run() - intBenchmark(numItems = 50, largeNumRows, minNumIters).run() - intBenchmark(numItems = 250, largeNumRows, minNumIters).run() - - longBenchmark(numItems = 10, largeNumRows, minNumIters).run() - longBenchmark(numItems = 50, largeNumRows, minNumIters).run() - longBenchmark(numItems = 250, largeNumRows, minNumIters).run() - - floatBenchmark(numItems = 10, largeNumRows, minNumIters).run() - floatBenchmark(numItems = 50, largeNumRows, minNumIters).run() - - doubleBenchmark(numItems = 10, largeNumRows, minNumIters).run() - doubleBenchmark(numItems = 50, largeNumRows, minNumIters).run() - - smallDecimalBenchmark(numItems = 5, smallNumRows, minNumIters).run() - smallDecimalBenchmark(numItems = 15, smallNumRows, minNumIters).run() - - largeDecimalBenchmark(numItems = 5, smallNumRows, minNumIters).run() - largeDecimalBenchmark(numItems = 15, smallNumRows, minNumIters).run() - - stringBenchmark(numItems = 5, smallNumRows, minNumIters).run() - stringBenchmark(numItems = 15, smallNumRows, minNumIters).run() - - timestampBenchmark(numItems = 10, largeNumRows, minNumIters).run() - timestampBenchmark(numItems = 25, largeNumRows, minNumIters).run() - - dateBenchmark(numItems = 10, smallNumRows, minNumIters).run() - dateBenchmark(numItems = 25, smallNumRows, minNumIters).run() - - arrayBenchmark(numItems = 5, smallNumRows, minNumIters).run() - arrayBenchmark(numItems = 15, smallNumRows, minNumIters).run() - - structBenchmark(numItems = 5, smallNumRows, minNumIters).run() - structBenchmark(numItems = 15, smallNumRows, minNumIters).run() + runByteBenchmark(numItems = 5, largeNumRows, minNumIters) + runByteBenchmark(numItems = 10, largeNumRows, minNumIters) + runByteBenchmark(numItems = 25, largeNumRows, minNumIters) + runByteBenchmark(numItems = 50, largeNumRows, minNumIters) + runByteBenchmark(numItems = 100, largeNumRows, minNumIters) + + runShortBenchmark(numItems = 5, largeNumRows, minNumIters) + runShortBenchmark(numItems = 10, largeNumRows, minNumIters) + runShortBenchmark(numItems = 25, largeNumRows, minNumIters) + runShortBenchmark(numItems = 50, largeNumRows, minNumIters) + runShortBenchmark(numItems = 100, largeNumRows, minNumIters) + + runIntBenchmark(numItems = 5, largeNumRows, minNumIters) + runIntBenchmark(numItems = 10, largeNumRows, minNumIters) + runIntBenchmark(numItems = 25, largeNumRows, minNumIters) + runIntBenchmark(numItems = 50, largeNumRows, minNumIters) + runIntBenchmark(numItems = 100, largeNumRows, minNumIters) + + runLongBenchmark(numItems = 5, largeNumRows, minNumIters) + runLongBenchmark(numItems = 10, largeNumRows, minNumIters) + runLongBenchmark(numItems = 25, largeNumRows, minNumIters) + runLongBenchmark(numItems = 50, largeNumRows, minNumIters) + runLongBenchmark(numItems = 100, largeNumRows, minNumIters) + + runFloatBenchmark(numItems = 5, largeNumRows, minNumIters) + runFloatBenchmark(numItems = 10, largeNumRows, minNumIters) + runFloatBenchmark(numItems = 25, largeNumRows, minNumIters) + runFloatBenchmark(numItems = 50, largeNumRows, minNumIters) + runFloatBenchmark(numItems = 100, largeNumRows, minNumIters) + + runDoubleBenchmark(numItems = 5, largeNumRows, minNumIters) + runDoubleBenchmark(numItems = 10, largeNumRows, minNumIters) + runDoubleBenchmark(numItems = 25, largeNumRows, minNumIters) + runDoubleBenchmark(numItems = 50, largeNumRows, minNumIters) + runDoubleBenchmark(numItems = 100, largeNumRows, minNumIters) + + runSmallDecimalBenchmark(numItems = 5, smallNumRows, minNumIters) + runSmallDecimalBenchmark(numItems = 10, smallNumRows, minNumIters) + runSmallDecimalBenchmark(numItems = 25, smallNumRows, minNumIters) + runSmallDecimalBenchmark(numItems = 50, smallNumRows, minNumIters) + runSmallDecimalBenchmark(numItems = 100, smallNumRows, minNumIters) + + runLargeDecimalBenchmark(numItems = 5, smallNumRows, minNumIters) + runLargeDecimalBenchmark(numItems = 10, smallNumRows, minNumIters) + runLargeDecimalBenchmark(numItems = 25, smallNumRows, minNumIters) + runLargeDecimalBenchmark(numItems = 50, smallNumRows, minNumIters) + runLargeDecimalBenchmark(numItems = 100, smallNumRows, minNumIters) + + runStringBenchmark(numItems = 5, smallNumRows, minNumIters) + runStringBenchmark(numItems = 10, smallNumRows, minNumIters) + runStringBenchmark(numItems = 25, smallNumRows, minNumIters) + runStringBenchmark(numItems = 50, smallNumRows, minNumIters) + runStringBenchmark(numItems = 100, smallNumRows, minNumIters) + + runTimestampBenchmark(numItems = 5, largeNumRows, minNumIters) + runTimestampBenchmark(numItems = 10, largeNumRows, minNumIters) + runTimestampBenchmark(numItems = 25, largeNumRows, minNumIters) + runTimestampBenchmark(numItems = 50, largeNumRows, minNumIters) + runTimestampBenchmark(numItems = 100, largeNumRows, minNumIters) + + runDateBenchmark(numItems = 5, smallNumRows, minNumIters) + runDateBenchmark(numItems = 10, smallNumRows, minNumIters) + runDateBenchmark(numItems = 25, smallNumRows, minNumIters) + runDateBenchmark(numItems = 50, smallNumRows, minNumIters) + runDateBenchmark(numItems = 100, smallNumRows, minNumIters) + + runArrayBenchmark(numItems = 5, smallNumRows, minNumIters) + runArrayBenchmark(numItems = 10, smallNumRows, minNumIters) + runArrayBenchmark(numItems = 25, smallNumRows, minNumIters) + runArrayBenchmark(numItems = 50, smallNumRows, minNumIters) + runArrayBenchmark(numItems = 100, smallNumRows, minNumIters) + + runStructBenchmark(numItems = 5, smallNumRows, minNumIters) + runStructBenchmark(numItems = 10, smallNumRows, minNumIters) + runStructBenchmark(numItems = 25, smallNumRows, minNumIters) + runStructBenchmark(numItems = 50, smallNumRows, minNumIters) + runStructBenchmark(numItems = 100, smallNumRows, minNumIters) } } } From d9b46f33b56d0ce46942c7cf09249ea266632ce1 Mon Sep 17 00:00:00 2001 From: Anton Okolnychyi Date: Wed, 12 Dec 2018 10:49:36 +0000 Subject: [PATCH 3/7] [SPARK-26203][SQL] Move to benchmarks folder and remove references in docs --- ....txt => InExpressionBenchmark-results.txt} | 346 +++++++++++------- .../benchmark/InExpressionBenchmark.scala} | 28 +- 2 files changed, 234 insertions(+), 140 deletions(-) rename sql/core/benchmarks/{InSetBenchmark-results.txt => InExpressionBenchmark-results.txt} (53%) rename sql/core/src/test/scala/org/apache/spark/sql/{InSetBenchmark.scala => execution/benchmark/InExpressionBenchmark.scala} (89%) diff --git a/sql/core/benchmarks/InSetBenchmark-results.txt b/sql/core/benchmarks/InExpressionBenchmark-results.txt similarity index 53% rename from sql/core/benchmarks/InSetBenchmark-results.txt rename to sql/core/benchmarks/InExpressionBenchmark-results.txt index 1c394e2278a4b..0ade29e26019d 100644 --- a/sql/core/benchmarks/InSetBenchmark-results.txt +++ b/sql/core/benchmarks/InExpressionBenchmark-results.txt @@ -1,460 +1,544 @@ ================================================================================================ -InSet Expression Benchmark +In Expression Benchmark ================================================================================================ Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 5 bytes: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 41 / 52 243.0 4.1 1.0X -InSet expression 58 / 61 172.6 5.8 0.7X +In expression 39 / 50 255.6 3.9 1.0X +InSet expression 57 / 61 175.5 5.7 0.7X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 10 bytes: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 47 / 50 212.3 4.7 1.0X -InSet expression 63 / 66 159.3 6.3 0.7X +In expression 46 / 51 215.7 4.6 1.0X +InSet expression 65 / 105 154.1 6.5 0.7X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 25 bytes: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 77 / 81 129.5 7.7 1.0X -InSet expression 86 / 89 116.3 8.6 0.9X +In expression 76 / 81 132.1 7.6 1.0X +InSet expression 85 / 91 117.5 8.5 0.9X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 50 bytes: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 125 / 130 79.8 12.5 1.0X -InSet expression 133 / 148 75.4 13.3 0.9X +In expression 126 / 130 79.1 12.6 1.0X +InSet expression 134 / 140 74.7 13.4 0.9X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 100 bytes: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 224 / 229 44.7 22.4 1.0X -InSet expression 206 / 214 48.5 20.6 1.1X +In expression 219 / 223 45.7 21.9 1.0X +InSet expression 202 / 214 49.4 20.2 1.1X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 5 shorts: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 30 / 34 333.5 3.0 1.0X -InSet expression 111 / 115 89.8 11.1 0.3X +In expression 29 / 32 339.2 2.9 1.0X +InSet expression 110 / 115 90.5 11.0 0.3X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 10 shorts: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 35 / 36 289.9 3.5 1.0X -InSet expression 123 / 127 81.4 12.3 0.3X +In expression 36 / 42 280.1 3.6 1.0X +InSet expression 121 / 130 83.0 12.1 0.3X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 25 shorts: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 51 / 53 196.1 5.1 1.0X -InSet expression 125 / 130 79.9 12.5 0.4X +In expression 50 / 52 199.1 5.0 1.0X +InSet expression 125 / 128 80.0 12.5 0.4X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 50 shorts: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 82 / 85 122.0 8.2 1.0X -InSet expression 160 / 163 62.6 16.0 0.5X +In expression 81 / 84 123.8 8.1 1.0X +InSet expression 159 / 164 62.7 15.9 0.5X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 100 shorts: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 144 / 150 69.2 14.4 1.0X -InSet expression 137 / 142 72.9 13.7 1.1X +In expression 142 / 144 70.5 14.2 1.0X +InSet expression 135 / 140 74.1 13.5 1.1X + +Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 +Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +200 shorts: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative +------------------------------------------------------------------------------------------------ +In expression 259 / 265 38.6 25.9 1.0X +InSet expression 134 / 139 74.5 13.4 1.9X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 5 ints: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 27 / 29 375.4 2.7 1.0X -InSet expression 104 / 113 95.8 10.4 0.3X +In expression 26 / 27 384.7 2.6 1.0X +InSet expression 110 / 113 90.5 11.0 0.2X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 10 ints: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 33 / 35 300.2 3.3 1.0X -InSet expression 116 / 126 86.4 11.6 0.3X +In expression 33 / 35 304.3 3.3 1.0X +InSet expression 119 / 122 83.8 11.9 0.3X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 25 ints: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 50 / 53 198.6 5.0 1.0X -InSet expression 121 / 124 82.6 12.1 0.4X +In expression 49 / 51 204.3 4.9 1.0X +InSet expression 123 / 126 81.4 12.3 0.4X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 50 ints: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 79 / 82 126.1 7.9 1.0X -InSet expression 156 / 159 64.3 15.6 0.5X +In expression 78 / 80 127.9 7.8 1.0X +InSet expression 152 / 156 65.7 15.2 0.5X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 100 ints: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 138 / 141 72.3 13.8 1.0X -InSet expression 131 / 134 76.3 13.1 1.1X +In expression 136 / 140 73.3 13.6 1.0X +InSet expression 129 / 132 77.7 12.9 1.1X + +Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 +Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +200 ints: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative +------------------------------------------------------------------------------------------------ +In expression 252 / 256 39.7 25.2 1.0X +InSet expression 127 / 129 78.5 12.7 2.0X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 5 longs: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 24 / 25 409.6 2.4 1.0X -InSet expression 93 / 98 108.1 9.3 0.3X +In expression 24 / 25 415.3 2.4 1.0X +InSet expression 91 / 93 110.4 9.1 0.3X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 10 longs: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 23 / 25 429.0 2.3 1.0X -InSet expression 107 / 109 93.6 10.7 0.2X +In expression 23 / 24 432.7 2.3 1.0X +InSet expression 104 / 110 95.7 10.4 0.2X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 25 longs: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 42 / 44 237.7 4.2 1.0X -InSet expression 108 / 112 92.4 10.8 0.4X +In expression 41 / 43 242.1 4.1 1.0X +InSet expression 106 / 108 94.1 10.6 0.4X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 50 longs: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 70 / 73 142.2 7.0 1.0X -InSet expression 140 / 143 71.2 14.0 0.5X +In expression 68 / 71 146.1 6.8 1.0X +InSet expression 135 / 141 73.9 13.5 0.5X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 100 longs: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 130 / 137 77.2 13.0 1.0X -InSet expression 112 / 116 89.2 11.2 1.2X +In expression 127 / 129 78.9 12.7 1.0X +InSet expression 111 / 114 89.7 11.1 1.1X + +Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 +Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +200 longs: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative +------------------------------------------------------------------------------------------------ +In expression 254 / 267 39.4 25.4 1.0X +InSet expression 112 / 122 89.0 11.2 2.3X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 5 floats: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 36 / 38 278.3 3.6 1.0X -InSet expression 107 / 111 93.7 10.7 0.3X +In expression 36 / 39 276.5 3.6 1.0X +InSet expression 109 / 115 91.9 10.9 0.3X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 10 floats: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 53 / 56 189.1 5.3 1.0X -InSet expression 125 / 128 80.0 12.5 0.4X +In expression 53 / 56 187.9 5.3 1.0X +InSet expression 130 / 135 76.7 13.0 0.4X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 25 floats: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 109 / 110 92.2 10.9 1.0X -InSet expression 128 / 133 78.4 12.8 0.9X +In expression 113 / 116 88.8 11.3 1.0X +InSet expression 133 / 141 75.0 13.3 0.8X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 50 floats: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 202 / 205 49.6 20.2 1.0X -InSet expression 165 / 168 60.7 16.5 1.2X +In expression 210 / 220 47.6 21.0 1.0X +InSet expression 169 / 179 59.1 16.9 1.2X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 100 floats: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 393 / 396 25.5 39.3 1.0X -InSet expression 128 / 133 78.3 12.8 3.1X +In expression 415 / 424 24.1 41.5 1.0X +InSet expression 137 / 141 73.2 13.7 3.0X + +Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 +Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +200 floats: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative +------------------------------------------------------------------------------------------------ +In expression 1799 / 1853 5.6 179.9 1.0X +InSet expression 136 / 143 73.7 13.6 13.3X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 5 doubles: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 35 / 37 285.7 3.5 1.0X -InSet expression 104 / 108 96.4 10.4 0.3X +In expression 36 / 39 276.9 3.6 1.0X +InSet expression 109 / 114 92.2 10.9 0.3X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 10 doubles: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 53 / 57 187.5 5.3 1.0X -InSet expression 120 / 124 83.1 12.0 0.4X +In expression 54 / 58 186.5 5.4 1.0X +InSet expression 127 / 132 78.8 12.7 0.4X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 25 doubles: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 108 / 110 92.8 10.8 1.0X -InSet expression 124 / 128 80.9 12.4 0.9X +In expression 109 / 115 92.1 10.9 1.0X +InSet expression 124 / 135 80.4 12.4 0.9X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 50 doubles: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 201 / 204 49.6 20.1 1.0X -InSet expression 162 / 167 61.6 16.2 1.2X +In expression 211 / 222 47.5 21.1 1.0X +InSet expression 171 / 176 58.4 17.1 1.2X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 100 doubles: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 387 / 389 25.8 38.7 1.0X -InSet expression 129 / 136 77.4 12.9 3.0X +In expression 407 / 416 24.6 40.7 1.0X +InSet expression 132 / 139 76.0 13.2 3.1X + +Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 +Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +200 doubles: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative +------------------------------------------------------------------------------------------------ +In expression 2104 / 2140 4.8 210.4 1.0X +InSet expression 132 / 140 75.6 13.2 15.9X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 5 small decimals: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 26 / 27 38.8 25.8 1.0X -InSet expression 71 / 74 14.1 71.2 0.4X +In expression 26 / 29 38.0 26.3 1.0X +InSet expression 72 / 79 13.8 72.3 0.4X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 10 small decimals: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 40 / 42 24.9 40.2 1.0X -InSet expression 73 / 77 13.6 73.5 0.5X +In expression 41 / 44 24.5 40.9 1.0X +InSet expression 77 / 80 13.1 76.5 0.5X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 25 small decimals: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 78 / 81 12.8 78.1 1.0X -InSet expression 74 / 77 13.6 73.5 1.1X +In expression 87 / 96 11.5 87.1 1.0X +InSet expression 77 / 83 13.0 77.0 1.1X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 50 small decimals: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 144 / 147 6.9 144.1 1.0X -InSet expression 80 / 83 12.6 79.6 1.8X +In expression 151 / 158 6.6 151.2 1.0X +InSet expression 80 / 85 12.5 80.3 1.9X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 100 small decimals: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 274 / 279 3.7 274.0 1.0X -InSet expression 80 / 89 12.5 80.0 3.4X +In expression 277 / 282 3.6 276.8 1.0X +InSet expression 79 / 85 12.7 78.9 3.5X + +Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 +Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +200 small decimals: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative +------------------------------------------------------------------------------------------------ +In expression 550 / 555 1.8 549.6 1.0X +InSet expression 83 / 86 12.0 83.1 6.6X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 5 large decimals: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 124 / 130 8.1 124.1 1.0X -InSet expression 87 / 92 11.5 86.6 1.4X +In expression 132 / 135 7.6 131.6 1.0X +InSet expression 85 / 90 11.8 84.5 1.6X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 10 large decimals: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 213 / 216 4.7 213.0 1.0X -InSet expression 89 / 93 11.2 89.4 2.4X +In expression 224 / 227 4.5 224.1 1.0X +InSet expression 85 / 89 11.7 85.4 2.6X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 25 large decimals: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 532 / 537 1.9 532.5 1.0X -InSet expression 94 / 97 10.6 94.4 5.6X +In expression 548 / 551 1.8 548.5 1.0X +InSet expression 90 / 93 11.1 90.2 6.1X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 50 large decimals: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 1016 / 1026 1.0 1016.5 1.0X -InSet expression 95 / 103 10.5 95.4 10.7X +In expression 1064 / 1074 0.9 1063.8 1.0X +InSet expression 94 / 98 10.7 93.5 11.4X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 100 large decimals: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 2035 / 2070 0.5 2035.0 1.0X -InSet expression 107 / 110 9.4 106.6 19.1X +In expression 2115 / 2125 0.5 2114.6 1.0X +InSet expression 104 / 108 9.6 104.3 20.3X + +Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 +Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +200 large decimals: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative +------------------------------------------------------------------------------------------------ +In expression 4211 / 4251 0.2 4211.3 1.0X +InSet expression 109 / 113 9.1 109.3 38.5X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 5 strings: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 71 / 74 14.0 71.4 1.0X -InSet expression 82 / 85 12.2 82.0 0.9X +In expression 69 / 71 14.5 68.8 1.0X +InSet expression 79 / 81 12.7 78.6 0.9X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 10 strings: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 73 / 76 13.6 73.5 1.0X -InSet expression 90 / 126 11.1 89.9 0.8X +In expression 71 / 74 14.1 70.8 1.0X +InSet expression 81 / 84 12.3 81.4 0.9X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 25 strings: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 85 / 91 11.8 84.6 1.0X -InSet expression 89 / 97 11.2 89.1 1.0X +In expression 84 / 89 11.9 84.4 1.0X +InSet expression 86 / 98 11.7 85.6 1.0X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 50 strings: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 102 / 106 9.8 102.4 1.0X -InSet expression 89 / 93 11.3 88.8 1.2X +In expression 133 / 137 7.5 133.1 1.0X +InSet expression 88 / 91 11.4 87.5 1.5X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 100 strings: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 154 / 160 6.5 153.6 1.0X -InSet expression 86 / 94 11.6 86.1 1.8X +In expression 237 / 242 4.2 237.2 1.0X +InSet expression 83 / 88 12.0 83.1 2.9X + +Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 +Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +200 strings: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative +------------------------------------------------------------------------------------------------ +In expression 451 / 459 2.2 451.4 1.0X +InSet expression 85 / 87 11.8 85.1 5.3X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 5 timestamps: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 30 / 31 336.8 3.0 1.0X -InSet expression 93 / 95 108.0 9.3 0.3X +In expression 30 / 30 336.3 3.0 1.0X +InSet expression 91 / 95 110.0 9.1 0.3X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 10 timestamps: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 41 / 44 244.1 4.1 1.0X -InSet expression 102 / 105 98.0 10.2 0.4X +In expression 41 / 42 243.0 4.1 1.0X +InSet expression 101 / 103 99.0 10.1 0.4X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 25 timestamps: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 75 / 77 132.8 7.5 1.0X -InSet expression 126 / 130 79.1 12.6 0.6X +In expression 75 / 78 133.0 7.5 1.0X +InSet expression 127 / 130 79.0 12.7 0.6X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 50 timestamps: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 131 / 133 76.1 13.1 1.0X -InSet expression 139 / 143 72.0 13.9 0.9X +In expression 133 / 134 75.3 13.3 1.0X +InSet expression 138 / 142 72.3 13.8 1.0X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 100 timestamps: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 154 / 156 64.9 15.4 1.0X -InSet expression 130 / 138 76.7 13.0 1.2X +In expression 155 / 158 64.3 15.5 1.0X +InSet expression 132 / 138 75.7 13.2 1.2X + +Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 +Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +200 timestamps: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative +------------------------------------------------------------------------------------------------ +In expression 160 / 162 62.5 16.0 1.0X +InSet expression 136 / 141 73.5 13.6 1.2X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 5 dates: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 28 / 30 35.3 28.3 1.0X -InSet expression 35 / 38 28.7 34.8 0.8X +In expression 29 / 30 34.4 29.1 1.0X +InSet expression 35 / 36 28.6 34.9 0.8X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 10 dates: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 26 / 27 37.9 26.4 1.0X -InSet expression 35 / 37 28.3 35.4 0.7X +In expression 27 / 28 37.4 26.8 1.0X +InSet expression 36 / 37 28.0 35.8 0.7X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 25 dates: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 32 / 33 31.7 31.6 1.0X -InSet expression 36 / 38 27.7 36.1 0.9X +In expression 31 / 33 31.8 31.4 1.0X +InSet expression 37 / 38 27.3 36.6 0.9X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 50 dates: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 37 / 39 26.7 37.5 1.0X -InSet expression 38 / 39 26.5 37.7 1.0X +In expression 38 / 39 26.6 37.5 1.0X +InSet expression 38 / 39 26.2 38.1 1.0X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 100 dates: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 46 / 47 21.6 46.2 1.0X -InSet expression 40 / 41 24.8 40.3 1.1X +In expression 47 / 48 21.4 46.8 1.0X +InSet expression 41 / 42 24.5 40.8 1.1X + +Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 +Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +200 dates: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative +------------------------------------------------------------------------------------------------ +In expression 67 / 69 14.9 67.2 1.0X +InSet expression 42 / 43 23.8 42.1 1.6X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 5 arrays: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 24 / 26 40.9 24.4 1.0X -InSet expression 47 / 49 21.2 47.2 0.5X +In expression 26 / 29 38.6 25.9 1.0X +InSet expression 48 / 51 21.0 47.7 0.5X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 10 arrays: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 39 / 40 25.8 38.7 1.0X -InSet expression 47 / 50 21.1 47.4 0.8X +In expression 40 / 41 25.1 39.8 1.0X +InSet expression 49 / 50 20.6 48.5 0.8X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 25 arrays: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 156 / 159 6.4 156.0 1.0X -InSet expression 59 / 61 17.0 58.8 2.7X +In expression 151 / 154 6.6 151.0 1.0X +InSet expression 61 / 64 16.3 61.2 2.5X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 50 arrays: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 325 / 336 3.1 325.1 1.0X -InSet expression 81 / 83 12.4 80.7 4.0X +In expression 330 / 335 3.0 329.9 1.0X +InSet expression 86 / 88 11.7 85.6 3.9X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 100 arrays: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 691 / 704 1.4 690.6 1.0X -InSet expression 96 / 101 10.4 96.1 7.2X +In expression 688 / 696 1.5 687.9 1.0X +InSet expression 102 / 104 9.8 101.7 6.8X + +Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 +Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +200 arrays: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative +------------------------------------------------------------------------------------------------ +In expression 1715 / 1931 0.6 1714.7 1.0X +InSet expression 134 / 137 7.5 133.9 12.8X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 5 structs: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 23 / 26 44.0 22.7 1.0X -InSet expression 83 / 89 12.0 83.2 0.3X +In expression 23 / 24 44.3 22.6 1.0X +InSet expression 79 / 82 12.7 79.0 0.3X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 10 structs: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 29 / 32 34.0 29.4 1.0X -InSet expression 84 / 89 11.8 84.4 0.3X +In expression 29 / 31 34.5 29.0 1.0X +InSet expression 80 / 83 12.5 79.7 0.4X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 25 structs: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 71 / 74 14.1 71.0 1.0X -InSet expression 107 / 112 9.3 107.5 0.7X +In expression 71 / 72 14.1 70.7 1.0X +InSet expression 102 / 104 9.8 102.0 0.7X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 50 structs: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 204 / 208 4.9 203.8 1.0X -InSet expression 153 / 163 6.5 153.2 1.3X +In expression 196 / 200 5.1 196.5 1.0X +InSet expression 151 / 155 6.6 151.1 1.3X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 100 structs: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 505 / 514 2.0 505.1 1.0X -InSet expression 186 / 189 5.4 185.5 2.7X +In expression 476 / 480 2.1 476.1 1.0X +InSet expression 173 / 179 5.8 173.0 2.8X + +Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 +Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +200 structs: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative +------------------------------------------------------------------------------------------------ +In expression 1223 / 1350 0.8 1222.8 1.0X +InSet expression 228 / 233 4.4 227.5 5.4X diff --git a/sql/core/src/test/scala/org/apache/spark/sql/InSetBenchmark.scala b/sql/core/src/test/scala/org/apache/spark/sql/execution/benchmark/InExpressionBenchmark.scala similarity index 89% rename from sql/core/src/test/scala/org/apache/spark/sql/InSetBenchmark.scala rename to sql/core/src/test/scala/org/apache/spark/sql/execution/benchmark/InExpressionBenchmark.scala index ddd005f9e601b..e7d4ca3a7cf18 100644 --- a/sql/core/src/test/scala/org/apache/spark/sql/InSetBenchmark.scala +++ b/sql/core/src/test/scala/org/apache/spark/sql/execution/benchmark/InExpressionBenchmark.scala @@ -15,28 +15,26 @@ * limitations under the License. */ -package org.apache.spark.sql +package org.apache.spark.sql.execution.benchmark import org.apache.spark.benchmark.Benchmark -import org.apache.spark.sql.catalyst.expressions.In -import org.apache.spark.sql.catalyst.expressions.InSet -import org.apache.spark.sql.execution.benchmark.SqlBasedBenchmark +import org.apache.spark.sql.DataFrame import org.apache.spark.sql.functions.{array, struct} import org.apache.spark.sql.internal.SQLConf -import org.apache.spark.sql.types._ +import org.apache.spark.sql.types.{ByteType, DateType, DecimalType, DoubleType, FloatType, IntegerType, ShortType, StringType, TimestampType} /** - * A benchmark that compares the performance of [[In]] and [[InSet]] expressions. + * A benchmark that compares the performance of different ways to evaluate SQL IN expressions. * * To run this benchmark: * {{{ * 1. without sbt: bin/spark-submit --class * 2. build/sbt "sql/test:runMain " * 3. generate result: SPARK_GENERATE_BENCHMARK_FILES=1 build/sbt "sql/test:runMain " - * Results will be written to "benchmarks/InSetBenchmark-results.txt". + * Results will be written to "benchmarks/InExpressionBenchmark-results.txt". * }}} */ -object InSetBenchmark extends SqlBasedBenchmark { +object InExpressionBenchmark extends SqlBasedBenchmark { import spark.implicits._ @@ -167,7 +165,7 @@ object InSetBenchmark extends SqlBasedBenchmark { val smallNumRows = 1000000 val minNumIters = 5 - runBenchmark("InSet Expression Benchmark") { + runBenchmark("In Expression Benchmark") { runByteBenchmark(numItems = 5, largeNumRows, minNumIters) runByteBenchmark(numItems = 10, largeNumRows, minNumIters) runByteBenchmark(numItems = 25, largeNumRows, minNumIters) @@ -179,72 +177,84 @@ object InSetBenchmark extends SqlBasedBenchmark { runShortBenchmark(numItems = 25, largeNumRows, minNumIters) runShortBenchmark(numItems = 50, largeNumRows, minNumIters) runShortBenchmark(numItems = 100, largeNumRows, minNumIters) + runShortBenchmark(numItems = 200, largeNumRows, minNumIters) runIntBenchmark(numItems = 5, largeNumRows, minNumIters) runIntBenchmark(numItems = 10, largeNumRows, minNumIters) runIntBenchmark(numItems = 25, largeNumRows, minNumIters) runIntBenchmark(numItems = 50, largeNumRows, minNumIters) runIntBenchmark(numItems = 100, largeNumRows, minNumIters) + runIntBenchmark(numItems = 200, largeNumRows, minNumIters) runLongBenchmark(numItems = 5, largeNumRows, minNumIters) runLongBenchmark(numItems = 10, largeNumRows, minNumIters) runLongBenchmark(numItems = 25, largeNumRows, minNumIters) runLongBenchmark(numItems = 50, largeNumRows, minNumIters) runLongBenchmark(numItems = 100, largeNumRows, minNumIters) + runLongBenchmark(numItems = 200, largeNumRows, minNumIters) runFloatBenchmark(numItems = 5, largeNumRows, minNumIters) runFloatBenchmark(numItems = 10, largeNumRows, minNumIters) runFloatBenchmark(numItems = 25, largeNumRows, minNumIters) runFloatBenchmark(numItems = 50, largeNumRows, minNumIters) runFloatBenchmark(numItems = 100, largeNumRows, minNumIters) + runFloatBenchmark(numItems = 200, largeNumRows, minNumIters) runDoubleBenchmark(numItems = 5, largeNumRows, minNumIters) runDoubleBenchmark(numItems = 10, largeNumRows, minNumIters) runDoubleBenchmark(numItems = 25, largeNumRows, minNumIters) runDoubleBenchmark(numItems = 50, largeNumRows, minNumIters) runDoubleBenchmark(numItems = 100, largeNumRows, minNumIters) + runDoubleBenchmark(numItems = 200, largeNumRows, minNumIters) runSmallDecimalBenchmark(numItems = 5, smallNumRows, minNumIters) runSmallDecimalBenchmark(numItems = 10, smallNumRows, minNumIters) runSmallDecimalBenchmark(numItems = 25, smallNumRows, minNumIters) runSmallDecimalBenchmark(numItems = 50, smallNumRows, minNumIters) runSmallDecimalBenchmark(numItems = 100, smallNumRows, minNumIters) + runSmallDecimalBenchmark(numItems = 200, smallNumRows, minNumIters) runLargeDecimalBenchmark(numItems = 5, smallNumRows, minNumIters) runLargeDecimalBenchmark(numItems = 10, smallNumRows, minNumIters) runLargeDecimalBenchmark(numItems = 25, smallNumRows, minNumIters) runLargeDecimalBenchmark(numItems = 50, smallNumRows, minNumIters) runLargeDecimalBenchmark(numItems = 100, smallNumRows, minNumIters) + runLargeDecimalBenchmark(numItems = 200, smallNumRows, minNumIters) runStringBenchmark(numItems = 5, smallNumRows, minNumIters) runStringBenchmark(numItems = 10, smallNumRows, minNumIters) runStringBenchmark(numItems = 25, smallNumRows, minNumIters) runStringBenchmark(numItems = 50, smallNumRows, minNumIters) runStringBenchmark(numItems = 100, smallNumRows, minNumIters) + runStringBenchmark(numItems = 200, smallNumRows, minNumIters) runTimestampBenchmark(numItems = 5, largeNumRows, minNumIters) runTimestampBenchmark(numItems = 10, largeNumRows, minNumIters) runTimestampBenchmark(numItems = 25, largeNumRows, minNumIters) runTimestampBenchmark(numItems = 50, largeNumRows, minNumIters) runTimestampBenchmark(numItems = 100, largeNumRows, minNumIters) + runTimestampBenchmark(numItems = 200, largeNumRows, minNumIters) runDateBenchmark(numItems = 5, smallNumRows, minNumIters) runDateBenchmark(numItems = 10, smallNumRows, minNumIters) runDateBenchmark(numItems = 25, smallNumRows, minNumIters) runDateBenchmark(numItems = 50, smallNumRows, minNumIters) runDateBenchmark(numItems = 100, smallNumRows, minNumIters) + runDateBenchmark(numItems = 200, smallNumRows, minNumIters) runArrayBenchmark(numItems = 5, smallNumRows, minNumIters) runArrayBenchmark(numItems = 10, smallNumRows, minNumIters) runArrayBenchmark(numItems = 25, smallNumRows, minNumIters) runArrayBenchmark(numItems = 50, smallNumRows, minNumIters) runArrayBenchmark(numItems = 100, smallNumRows, minNumIters) + runArrayBenchmark(numItems = 200, smallNumRows, minNumIters) runStructBenchmark(numItems = 5, smallNumRows, minNumIters) runStructBenchmark(numItems = 10, smallNumRows, minNumIters) runStructBenchmark(numItems = 25, smallNumRows, minNumIters) runStructBenchmark(numItems = 50, smallNumRows, minNumIters) runStructBenchmark(numItems = 100, smallNumRows, minNumIters) + runStructBenchmark(numItems = 200, smallNumRows, minNumIters) } } } From 9842635b76d18a2ffa1c44bd10626508b4e9d576 Mon Sep 17 00:00:00 2001 From: Anton Okolnychyi Date: Thu, 20 Dec 2018 09:41:33 +0200 Subject: [PATCH 4/7] [SPARK-26203][SQl] Second review round --- .../InExpressionBenchmark-results.txt | 315 +++++++++--------- .../benchmark/InExpressionBenchmark.scala | 163 ++++----- 2 files changed, 218 insertions(+), 260 deletions(-) diff --git a/sql/core/benchmarks/InExpressionBenchmark-results.txt b/sql/core/benchmarks/InExpressionBenchmark-results.txt index 0ade29e26019d..240a57a7c9efc 100644 --- a/sql/core/benchmarks/InExpressionBenchmark-results.txt +++ b/sql/core/benchmarks/InExpressionBenchmark-results.txt @@ -6,539 +6,546 @@ Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 5 bytes: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 39 / 50 255.6 3.9 1.0X -InSet expression 57 / 61 175.5 5.7 0.7X +In expression 39 / 51 257.9 3.9 1.0X +InSet expression 59 / 63 170.7 5.9 0.7X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 10 bytes: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 46 / 51 215.7 4.6 1.0X -InSet expression 65 / 105 154.1 6.5 0.7X +In expression 47 / 51 213.2 4.7 1.0X +InSet expression 65 / 69 153.4 6.5 0.7X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 25 bytes: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 76 / 81 132.1 7.6 1.0X -InSet expression 85 / 91 117.5 8.5 0.9X +In expression 75 / 80 133.9 7.5 1.0X +InSet expression 91 / 97 109.8 9.1 0.8X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 50 bytes: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 126 / 130 79.1 12.6 1.0X -InSet expression 134 / 140 74.7 13.4 0.9X +In expression 123 / 127 81.1 12.3 1.0X +InSet expression 127 / 133 78.6 12.7 1.0X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 100 bytes: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 219 / 223 45.7 21.9 1.0X -InSet expression 202 / 214 49.4 20.2 1.1X +In expression 214 / 222 46.7 21.4 1.0X +InSet expression 246 / 254 40.6 24.6 0.9X + +Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 +Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +200 bytes: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative +------------------------------------------------------------------------------------------------ +In expression 370 / 375 27.0 37.0 1.0X +InSet expression 403 / 413 24.8 40.3 0.9X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 5 shorts: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 29 / 32 339.2 2.9 1.0X -InSet expression 110 / 115 90.5 11.0 0.3X +In expression 30 / 33 336.7 3.0 1.0X +InSet expression 114 / 120 87.7 11.4 0.3X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 10 shorts: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 36 / 42 280.1 3.6 1.0X -InSet expression 121 / 130 83.0 12.1 0.3X +In expression 34 / 36 295.4 3.4 1.0X +InSet expression 126 / 132 79.3 12.6 0.3X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 25 shorts: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 50 / 52 199.1 5.0 1.0X -InSet expression 125 / 128 80.0 12.5 0.4X +In expression 50 / 54 198.3 5.0 1.0X +InSet expression 127 / 133 78.5 12.7 0.4X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 50 shorts: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 81 / 84 123.8 8.1 1.0X -InSet expression 159 / 164 62.7 15.9 0.5X +In expression 82 / 86 122.5 8.2 1.0X +InSet expression 158 / 166 63.4 15.8 0.5X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 100 shorts: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 142 / 144 70.5 14.2 1.0X -InSet expression 135 / 140 74.1 13.5 1.1X +In expression 138 / 141 72.6 13.8 1.0X +InSet expression 135 / 139 74.1 13.5 1.0X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 200 shorts: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 259 / 265 38.6 25.9 1.0X -InSet expression 134 / 139 74.5 13.4 1.9X +In expression 254 / 260 39.4 25.4 1.0X +InSet expression 130 / 136 76.6 13.0 1.9X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 5 ints: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 26 / 27 384.7 2.6 1.0X -InSet expression 110 / 113 90.5 11.0 0.2X +In expression 26 / 28 380.2 2.6 1.0X +InSet expression 116 / 120 86.5 11.6 0.2X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 10 ints: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 33 / 35 304.3 3.3 1.0X -InSet expression 119 / 122 83.8 11.9 0.3X +In expression 33 / 35 303.9 3.3 1.0X +InSet expression 127 / 131 78.6 12.7 0.3X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 25 ints: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 49 / 51 204.3 4.9 1.0X -InSet expression 123 / 126 81.4 12.3 0.4X +In expression 49 / 51 205.4 4.9 1.0X +InSet expression 129 / 132 77.4 12.9 0.4X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 50 ints: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 78 / 80 127.9 7.8 1.0X -InSet expression 152 / 156 65.7 15.2 0.5X +In expression 78 / 80 128.6 7.8 1.0X +InSet expression 162 / 167 61.9 16.2 0.5X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 100 ints: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 136 / 140 73.3 13.6 1.0X -InSet expression 129 / 132 77.7 12.9 1.1X +In expression 135 / 139 73.8 13.5 1.0X +InSet expression 133 / 139 75.1 13.3 1.0X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 200 ints: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 252 / 256 39.7 25.2 1.0X -InSet expression 127 / 129 78.5 12.7 2.0X +In expression 254 / 259 39.4 25.4 1.0X +InSet expression 134 / 137 74.8 13.4 1.9X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 5 longs: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 24 / 25 415.3 2.4 1.0X -InSet expression 91 / 93 110.4 9.1 0.3X +In expression 24 / 25 417.0 2.4 1.0X +InSet expression 90 / 93 110.9 9.0 0.3X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 10 longs: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 23 / 24 432.7 2.3 1.0X -InSet expression 104 / 110 95.7 10.4 0.2X +In expression 23 / 25 437.7 2.3 1.0X +InSet expression 106 / 110 94.2 10.6 0.2X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 25 longs: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 41 / 43 242.1 4.1 1.0X -InSet expression 106 / 108 94.1 10.6 0.4X +In expression 41 / 43 241.6 4.1 1.0X +InSet expression 105 / 109 94.9 10.5 0.4X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 50 longs: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 68 / 71 146.1 6.8 1.0X -InSet expression 135 / 141 73.9 13.5 0.5X +In expression 69 / 71 144.7 6.9 1.0X +InSet expression 136 / 143 73.4 13.6 0.5X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 100 longs: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 127 / 129 78.9 12.7 1.0X -InSet expression 111 / 114 89.7 11.1 1.1X +In expression 127 / 130 78.6 12.7 1.0X +InSet expression 110 / 115 91.3 11.0 1.2X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 200 longs: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 254 / 267 39.4 25.4 1.0X -InSet expression 112 / 122 89.0 11.2 2.3X +In expression 246 / 249 40.7 24.6 1.0X +InSet expression 111 / 114 90.4 11.1 2.2X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 5 floats: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 36 / 39 276.5 3.6 1.0X -InSet expression 109 / 115 91.9 10.9 0.3X +In expression 37 / 40 271.4 3.7 1.0X +InSet expression 108 / 112 92.7 10.8 0.3X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 10 floats: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 53 / 56 187.9 5.3 1.0X -InSet expression 130 / 135 76.7 13.0 0.4X +In expression 52 / 55 192.2 5.2 1.0X +InSet expression 124 / 127 80.5 12.4 0.4X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 25 floats: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 113 / 116 88.8 11.3 1.0X -InSet expression 133 / 141 75.0 13.3 0.8X +In expression 108 / 111 92.4 10.8 1.0X +InSet expression 125 / 131 79.9 12.5 0.9X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 50 floats: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 210 / 220 47.6 21.0 1.0X -InSet expression 169 / 179 59.1 16.9 1.2X +In expression 202 / 206 49.5 20.2 1.0X +InSet expression 162 / 167 61.5 16.2 1.2X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 100 floats: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 415 / 424 24.1 41.5 1.0X -InSet expression 137 / 141 73.2 13.7 3.0X +In expression 387 / 410 25.8 38.7 1.0X +InSet expression 130 / 136 77.0 13.0 3.0X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 200 floats: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 1799 / 1853 5.6 179.9 1.0X -InSet expression 136 / 143 73.7 13.6 13.3X +In expression 1699 / 1787 5.9 169.9 1.0X +InSet expression 124 / 129 80.6 12.4 13.7X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 5 doubles: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 36 / 39 276.9 3.6 1.0X -InSet expression 109 / 114 92.2 10.9 0.3X +In expression 34 / 36 291.8 3.4 1.0X +InSet expression 102 / 105 97.7 10.2 0.3X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 10 doubles: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 54 / 58 186.5 5.4 1.0X -InSet expression 127 / 132 78.8 12.7 0.4X +In expression 52 / 53 194.0 5.2 1.0X +InSet expression 119 / 124 83.7 11.9 0.4X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 25 doubles: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 109 / 115 92.1 10.9 1.0X -InSet expression 124 / 135 80.4 12.4 0.9X +In expression 107 / 109 93.5 10.7 1.0X +InSet expression 123 / 127 81.1 12.3 0.9X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 50 doubles: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 211 / 222 47.5 21.1 1.0X -InSet expression 171 / 176 58.4 17.1 1.2X +In expression 201 / 203 49.9 20.1 1.0X +InSet expression 160 / 169 62.4 16.0 1.3X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 100 doubles: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 407 / 416 24.6 40.7 1.0X -InSet expression 132 / 139 76.0 13.2 3.1X +In expression 384 / 387 26.0 38.4 1.0X +InSet expression 125 / 130 80.3 12.5 3.1X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 200 doubles: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 2104 / 2140 4.8 210.4 1.0X -InSet expression 132 / 140 75.6 13.2 15.9X +In expression 1990 / 2015 5.0 199.0 1.0X +InSet expression 119 / 123 83.9 11.9 16.7X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 5 small decimals: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 26 / 29 38.0 26.3 1.0X -InSet expression 72 / 79 13.8 72.3 0.4X +In expression 22 / 24 45.9 21.8 1.0X +InSet expression 71 / 74 14.1 70.7 0.3X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 10 small decimals: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 41 / 44 24.5 40.9 1.0X -InSet expression 77 / 80 13.1 76.5 0.5X +In expression 25 / 27 39.2 25.5 1.0X +InSet expression 72 / 76 13.9 71.8 0.4X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 25 small decimals: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 87 / 96 11.5 87.1 1.0X -InSet expression 77 / 83 13.0 77.0 1.1X +In expression 38 / 41 26.3 38.1 1.0X +InSet expression 75 / 78 13.3 75.4 0.5X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 50 small decimals: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 151 / 158 6.6 151.2 1.0X -InSet expression 80 / 85 12.5 80.3 1.9X +In expression 89 / 92 11.2 89.0 1.0X +InSet expression 80 / 85 12.5 79.9 1.1X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 100 small decimals: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 277 / 282 3.6 276.8 1.0X -InSet expression 79 / 85 12.7 78.9 3.5X +In expression 217 / 222 4.6 217.2 1.0X +InSet expression 78 / 81 12.9 77.5 2.8X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 200 small decimals: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 550 / 555 1.8 549.6 1.0X -InSet expression 83 / 86 12.0 83.1 6.6X +In expression 486 / 494 2.1 485.9 1.0X +InSet expression 82 / 85 12.2 81.9 5.9X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 5 large decimals: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 132 / 135 7.6 131.6 1.0X -InSet expression 85 / 90 11.8 84.5 1.6X +In expression 129 / 133 7.8 128.6 1.0X +InSet expression 94 / 98 10.7 93.8 1.4X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 10 large decimals: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 224 / 227 4.5 224.1 1.0X -InSet expression 85 / 89 11.7 85.4 2.6X +In expression 217 / 228 4.6 217.4 1.0X +InSet expression 94 / 98 10.6 94.1 2.3X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 25 large decimals: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 548 / 551 1.8 548.5 1.0X -InSet expression 90 / 93 11.1 90.2 6.1X +In expression 532 / 540 1.9 532.3 1.0X +InSet expression 99 / 102 10.1 99.0 5.4X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 50 large decimals: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 1064 / 1074 0.9 1063.8 1.0X -InSet expression 94 / 98 10.7 93.5 11.4X +In expression 1032 / 1036 1.0 1031.8 1.0X +InSet expression 101 / 106 9.9 100.8 10.2X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 100 large decimals: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 2115 / 2125 0.5 2114.6 1.0X -InSet expression 104 / 108 9.6 104.3 20.3X +In expression 2088 / 2115 0.5 2087.6 1.0X +InSet expression 115 / 122 8.7 115.0 18.2X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 200 large decimals: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 4211 / 4251 0.2 4211.3 1.0X -InSet expression 109 / 113 9.1 109.3 38.5X +In expression 4272 / 4308 0.2 4271.5 1.0X +InSet expression 121 / 127 8.3 120.7 35.4X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 5 strings: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 69 / 71 14.5 68.8 1.0X -InSet expression 79 / 81 12.7 78.6 0.9X +In expression 71 / 74 14.2 70.7 1.0X +InSet expression 82 / 85 12.3 81.6 0.9X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 10 strings: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 71 / 74 14.1 70.8 1.0X -InSet expression 81 / 84 12.3 81.4 0.9X +In expression 75 / 78 13.3 75.3 1.0X +InSet expression 84 / 88 11.9 84.3 0.9X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 25 strings: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 84 / 89 11.9 84.4 1.0X -InSet expression 86 / 98 11.7 85.6 1.0X +In expression 87 / 91 11.5 86.8 1.0X +InSet expression 88 / 91 11.4 88.1 1.0X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 50 strings: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 133 / 137 7.5 133.1 1.0X -InSet expression 88 / 91 11.4 87.5 1.5X +In expression 102 / 106 9.8 102.0 1.0X +InSet expression 92 / 96 10.9 91.9 1.1X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 100 strings: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 237 / 242 4.2 237.2 1.0X -InSet expression 83 / 88 12.0 83.1 2.9X +In expression 145 / 151 6.9 144.6 1.0X +InSet expression 87 / 93 11.5 87.1 1.7X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 200 strings: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 451 / 459 2.2 451.4 1.0X -InSet expression 85 / 87 11.8 85.1 5.3X +In expression 414 / 421 2.4 413.7 1.0X +InSet expression 88 / 93 11.3 88.5 4.7X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 5 timestamps: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 30 / 30 336.3 3.0 1.0X -InSet expression 91 / 95 110.0 9.1 0.3X +In expression 17 / 18 601.0 1.7 1.0X +InSet expression 92 / 95 109.1 9.2 0.2X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 10 timestamps: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 41 / 42 243.0 4.1 1.0X -InSet expression 101 / 103 99.0 10.1 0.4X +In expression 27 / 28 376.3 2.7 1.0X +InSet expression 100 / 105 99.6 10.0 0.3X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 25 timestamps: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 75 / 78 133.0 7.5 1.0X -InSet expression 127 / 130 79.0 12.7 0.6X +In expression 57 / 59 175.3 5.7 1.0X +InSet expression 128 / 131 78.3 12.8 0.4X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 50 timestamps: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 133 / 134 75.3 13.3 1.0X -InSet expression 138 / 142 72.3 13.8 1.0X +In expression 107 / 110 93.1 10.7 1.0X +InSet expression 137 / 140 73.0 13.7 0.8X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 100 timestamps: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 155 / 158 64.3 15.5 1.0X -InSet expression 132 / 138 75.7 13.2 1.2X +In expression 214 / 220 46.7 21.4 1.0X +InSet expression 119 / 123 84.1 11.9 1.8X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 200 timestamps: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 160 / 162 62.5 16.0 1.0X -InSet expression 136 / 141 73.5 13.6 1.2X +In expression 431 / 454 23.2 43.1 1.0X +InSet expression 110 / 113 91.2 11.0 3.9X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 5 dates: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 29 / 30 34.4 29.1 1.0X -InSet expression 35 / 36 28.6 34.9 0.8X +In expression 198 / 201 50.5 19.8 1.0X +InSet expression 278 / 282 36.0 27.8 0.7X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 10 dates: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 27 / 28 37.4 26.8 1.0X -InSet expression 36 / 37 28.0 35.8 0.7X +In expression 178 / 182 56.2 17.8 1.0X +InSet expression 280 / 292 35.7 28.0 0.6X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 25 dates: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 31 / 33 31.8 31.4 1.0X -InSet expression 37 / 38 27.3 36.6 0.9X +In expression 220 / 223 45.4 22.0 1.0X +InSet expression 291 / 293 34.4 29.1 0.8X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 50 dates: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 38 / 39 26.6 37.5 1.0X -InSet expression 38 / 39 26.2 38.1 1.0X +In expression 282 / 313 35.4 28.2 1.0X +InSet expression 303 / 339 32.9 30.3 0.9X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 100 dates: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 47 / 48 21.4 46.8 1.0X -InSet expression 41 / 42 24.5 40.8 1.1X +In expression 356 / 409 28.1 35.6 1.0X +InSet expression 306 / 310 32.7 30.6 1.2X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 200 dates: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 67 / 69 14.9 67.2 1.0X -InSet expression 42 / 43 23.8 42.1 1.6X +In expression 570 / 574 17.5 57.0 1.0X +InSet expression 282 / 285 35.4 28.2 2.0X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 5 arrays: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 26 / 29 38.6 25.9 1.0X -InSet expression 48 / 51 21.0 47.7 0.5X +In expression 25 / 26 39.9 25.0 1.0X +InSet expression 48 / 50 20.8 48.0 0.5X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 10 arrays: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 40 / 41 25.1 39.8 1.0X -InSet expression 49 / 50 20.6 48.5 0.8X +In expression 40 / 41 25.3 39.6 1.0X +InSet expression 48 / 50 20.8 48.2 0.8X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 25 arrays: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 151 / 154 6.6 151.0 1.0X -InSet expression 61 / 64 16.3 61.2 2.5X +In expression 150 / 153 6.7 149.7 1.0X +InSet expression 61 / 63 16.4 61.1 2.4X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 50 arrays: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 330 / 335 3.0 329.9 1.0X -InSet expression 86 / 88 11.7 85.6 3.9X +In expression 325 / 332 3.1 324.6 1.0X +InSet expression 83 / 87 12.0 83.5 3.9X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 100 arrays: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 688 / 696 1.5 687.9 1.0X -InSet expression 102 / 104 9.8 101.7 6.8X +In expression 683 / 687 1.5 682.7 1.0X +InSet expression 101 / 106 9.9 100.5 6.8X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 200 arrays: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 1715 / 1931 0.6 1714.7 1.0X -InSet expression 134 / 137 7.5 133.9 12.8X +In expression 1742 / 2002 0.6 1742.0 1.0X +InSet expression 135 / 138 7.4 135.1 12.9X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 5 structs: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 23 / 24 44.3 22.6 1.0X -InSet expression 79 / 82 12.7 79.0 0.3X +In expression 23 / 25 43.0 23.2 1.0X +InSet expression 82 / 86 12.3 81.5 0.3X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 10 structs: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 29 / 31 34.5 29.0 1.0X -InSet expression 80 / 83 12.5 79.7 0.4X +In expression 29 / 31 34.1 29.3 1.0X +InSet expression 82 / 84 12.3 81.6 0.4X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 25 structs: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 71 / 72 14.1 70.7 1.0X -InSet expression 102 / 104 9.8 102.0 0.7X +In expression 72 / 73 13.9 71.8 1.0X +InSet expression 102 / 107 9.8 102.4 0.7X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 50 structs: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 196 / 200 5.1 196.5 1.0X -InSet expression 151 / 155 6.6 151.1 1.3X +In expression 196 / 199 5.1 195.7 1.0X +InSet expression 147 / 150 6.8 146.9 1.3X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 100 structs: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 476 / 480 2.1 476.1 1.0X -InSet expression 173 / 179 5.8 173.0 2.8X +In expression 475 / 479 2.1 475.2 1.0X +InSet expression 173 / 180 5.8 173.1 2.7X Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz 200 structs: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 1223 / 1350 0.8 1222.8 1.0X -InSet expression 228 / 233 4.4 227.5 5.4X +In expression 1102 / 1261 0.9 1102.0 1.0X +InSet expression 236 / 240 4.2 235.7 4.7X diff --git a/sql/core/src/test/scala/org/apache/spark/sql/execution/benchmark/InExpressionBenchmark.scala b/sql/core/src/test/scala/org/apache/spark/sql/execution/benchmark/InExpressionBenchmark.scala index e7d4ca3a7cf18..4446711db8d6a 100644 --- a/sql/core/src/test/scala/org/apache/spark/sql/execution/benchmark/InExpressionBenchmark.scala +++ b/sql/core/src/test/scala/org/apache/spark/sql/execution/benchmark/InExpressionBenchmark.scala @@ -40,92 +40,92 @@ object InExpressionBenchmark extends SqlBasedBenchmark { private def runByteBenchmark(numItems: Int, numRows: Long, minNumIters: Int): Unit = { val name = s"$numItems bytes" - val values = (1 to numItems).map(v => s"CAST($v AS tinyint)") - val df = spark.range(1, numRows).select($"id".cast(ByteType)) + val values = (Byte.MinValue until Byte.MinValue + numItems).map(v => s"${v}Y") + val df = spark.range(0, numRows).select($"id".cast(ByteType)) runBenchmark(name, df, values, numRows, minNumIters) } private def runShortBenchmark(numItems: Int, numRows: Long, minNumIters: Int): Unit = { val name = s"$numItems shorts" - val values = (1 to numItems).map(v => s"CAST($v AS smallint)") - val df = spark.range(1, numRows).select($"id".cast(ShortType)) + val values = (1 to numItems).map(v => s"${v}S") + val df = spark.range(0, numRows).select($"id".cast(ShortType)) runBenchmark(name, df, values, numRows, minNumIters) } private def runIntBenchmark(numItems: Int, numRows: Long, minNumIters: Int): Unit = { val name = s"$numItems ints" val values = 1 to numItems - val df = spark.range(1, numRows).select($"id".cast(IntegerType)) + val df = spark.range(0, numRows).select($"id".cast(IntegerType)) runBenchmark(name, df, values, numRows, minNumIters) } private def runLongBenchmark(numItems: Int, numRows: Long, minNumIters: Int): Unit = { val name = s"$numItems longs" val values = (1 to numItems).map(v => s"${v}L") - val df = spark.range(1, numRows).toDF("id") + val df = spark.range(0, numRows).toDF("id") runBenchmark(name, df, values, numRows, minNumIters) } private def runFloatBenchmark(numItems: Int, numRows: Long, minNumIters: Int): Unit = { val name = s"$numItems floats" val values = (1 to numItems).map(v => s"CAST($v AS float)") - val df = spark.range(1, numRows).select($"id".cast(FloatType)) + val df = spark.range(0, numRows).select($"id".cast(FloatType)) runBenchmark(name, df, values, numRows, minNumIters) } private def runDoubleBenchmark(numItems: Int, numRows: Long, minNumIters: Int): Unit = { val name = s"$numItems doubles" - val values = 1.0 to numItems by 1.0 - val df = spark.range(1, numRows).select($"id".cast(DoubleType)) + val values = (1 to numItems).map(v => s"$v.0D") + val df = spark.range(0, numRows).select($"id".cast(DoubleType)) runBenchmark(name, df, values, numRows, minNumIters) } private def runSmallDecimalBenchmark(numItems: Int, numRows: Long, minNumIters: Int): Unit = { val name = s"$numItems small decimals" val values = (1 to numItems).map(v => s"CAST($v AS decimal(12, 1))") - val df = spark.range(1, numRows).select($"id".cast(DecimalType(12, 1))) + val df = spark.range(0, numRows).select($"id".cast(DecimalType(12, 1))) runBenchmark(name, df, values, numRows, minNumIters) } private def runLargeDecimalBenchmark(numItems: Int, numRows: Long, minNumIters: Int): Unit = { val name = s"$numItems large decimals" val values = (1 to numItems).map(v => s"9223372036854775812.10539$v") - val df = spark.range(1, numRows).select($"id".cast(DecimalType(30, 7))) + val df = spark.range(0, numRows).select($"id".cast(DecimalType(30, 7))) runBenchmark(name, df, values, numRows, minNumIters) } private def runStringBenchmark(numItems: Int, numRows: Long, minNumIters: Int): Unit = { val name = s"$numItems strings" val values = (1 to numItems).map(n => s"'$n'") - val df = spark.range(1, numRows).select($"id".cast(StringType)) + val df = spark.range(0, numRows).select($"id".cast(StringType)) runBenchmark(name, df, values, numRows, minNumIters) } private def runTimestampBenchmark(numItems: Int, numRows: Long, minNumIters: Int): Unit = { val name = s"$numItems timestamps" - val values = (1 to numItems).map(m => s"CAST('1970-01-01 01:00:$m' AS timestamp)") - val df = spark.range(1, numRows).select($"id".cast(TimestampType)) + val values = (1 to numItems).map(m => s"CAST('1970-01-01 01:00:00.$m' AS timestamp)") + val df = spark.range(0, numRows).select($"id".cast(TimestampType)) runBenchmark(name, df, values, numRows, minNumIters) } private def runDateBenchmark(numItems: Int, numRows: Long, minNumIters: Int): Unit = { val name = s"$numItems dates" val values = (1 to numItems).map(n => 1970 + n).map(y => s"CAST('$y-01-01' AS date)") - val df = spark.range(1, numRows).select($"id".cast(TimestampType).cast(DateType)) + val df = spark.range(0, numRows).select($"id".cast(TimestampType).cast(DateType)) runBenchmark(name, df, values, numRows, minNumIters) } private def runArrayBenchmark(numItems: Int, numRows: Long, minNumIters: Int): Unit = { val name = s"$numItems arrays" val values = (1 to numItems).map(i => s"array($i)") - val df = spark.range(1, numRows).select(array($"id").as("id")) + val df = spark.range(0, numRows).select(array($"id").as("id")) runBenchmark(name, df, values, numRows, minNumIters) } private def runStructBenchmark(numItems: Int, numRows: Long, minNumIters: Int): Unit = { val name = s"$numItems structs" val values = (1 to numItems).map(i => s"struct($i)") - val df = spark.range(1, numRows).select(struct($"id".as("col1")).as("id")) + val df = spark.range(0, numRows).select(struct($"id".as("col1")).as("id")) runBenchmark(name, df, values, numRows, minNumIters) } @@ -161,100 +161,51 @@ object InExpressionBenchmark extends SqlBasedBenchmark { } override def runBenchmarkSuite(mainArgs: Array[String]): Unit = { + val numItemsSeq = Seq(5, 10, 25, 50, 100, 200) val largeNumRows = 10000000 val smallNumRows = 1000000 val minNumIters = 5 runBenchmark("In Expression Benchmark") { - runByteBenchmark(numItems = 5, largeNumRows, minNumIters) - runByteBenchmark(numItems = 10, largeNumRows, minNumIters) - runByteBenchmark(numItems = 25, largeNumRows, minNumIters) - runByteBenchmark(numItems = 50, largeNumRows, minNumIters) - runByteBenchmark(numItems = 100, largeNumRows, minNumIters) - - runShortBenchmark(numItems = 5, largeNumRows, minNumIters) - runShortBenchmark(numItems = 10, largeNumRows, minNumIters) - runShortBenchmark(numItems = 25, largeNumRows, minNumIters) - runShortBenchmark(numItems = 50, largeNumRows, minNumIters) - runShortBenchmark(numItems = 100, largeNumRows, minNumIters) - runShortBenchmark(numItems = 200, largeNumRows, minNumIters) - - runIntBenchmark(numItems = 5, largeNumRows, minNumIters) - runIntBenchmark(numItems = 10, largeNumRows, minNumIters) - runIntBenchmark(numItems = 25, largeNumRows, minNumIters) - runIntBenchmark(numItems = 50, largeNumRows, minNumIters) - runIntBenchmark(numItems = 100, largeNumRows, minNumIters) - runIntBenchmark(numItems = 200, largeNumRows, minNumIters) - - runLongBenchmark(numItems = 5, largeNumRows, minNumIters) - runLongBenchmark(numItems = 10, largeNumRows, minNumIters) - runLongBenchmark(numItems = 25, largeNumRows, minNumIters) - runLongBenchmark(numItems = 50, largeNumRows, minNumIters) - runLongBenchmark(numItems = 100, largeNumRows, minNumIters) - runLongBenchmark(numItems = 200, largeNumRows, minNumIters) - - runFloatBenchmark(numItems = 5, largeNumRows, minNumIters) - runFloatBenchmark(numItems = 10, largeNumRows, minNumIters) - runFloatBenchmark(numItems = 25, largeNumRows, minNumIters) - runFloatBenchmark(numItems = 50, largeNumRows, minNumIters) - runFloatBenchmark(numItems = 100, largeNumRows, minNumIters) - runFloatBenchmark(numItems = 200, largeNumRows, minNumIters) - - runDoubleBenchmark(numItems = 5, largeNumRows, minNumIters) - runDoubleBenchmark(numItems = 10, largeNumRows, minNumIters) - runDoubleBenchmark(numItems = 25, largeNumRows, minNumIters) - runDoubleBenchmark(numItems = 50, largeNumRows, minNumIters) - runDoubleBenchmark(numItems = 100, largeNumRows, minNumIters) - runDoubleBenchmark(numItems = 200, largeNumRows, minNumIters) - - runSmallDecimalBenchmark(numItems = 5, smallNumRows, minNumIters) - runSmallDecimalBenchmark(numItems = 10, smallNumRows, minNumIters) - runSmallDecimalBenchmark(numItems = 25, smallNumRows, minNumIters) - runSmallDecimalBenchmark(numItems = 50, smallNumRows, minNumIters) - runSmallDecimalBenchmark(numItems = 100, smallNumRows, minNumIters) - runSmallDecimalBenchmark(numItems = 200, smallNumRows, minNumIters) - - runLargeDecimalBenchmark(numItems = 5, smallNumRows, minNumIters) - runLargeDecimalBenchmark(numItems = 10, smallNumRows, minNumIters) - runLargeDecimalBenchmark(numItems = 25, smallNumRows, minNumIters) - runLargeDecimalBenchmark(numItems = 50, smallNumRows, minNumIters) - runLargeDecimalBenchmark(numItems = 100, smallNumRows, minNumIters) - runLargeDecimalBenchmark(numItems = 200, smallNumRows, minNumIters) - - runStringBenchmark(numItems = 5, smallNumRows, minNumIters) - runStringBenchmark(numItems = 10, smallNumRows, minNumIters) - runStringBenchmark(numItems = 25, smallNumRows, minNumIters) - runStringBenchmark(numItems = 50, smallNumRows, minNumIters) - runStringBenchmark(numItems = 100, smallNumRows, minNumIters) - runStringBenchmark(numItems = 200, smallNumRows, minNumIters) - - runTimestampBenchmark(numItems = 5, largeNumRows, minNumIters) - runTimestampBenchmark(numItems = 10, largeNumRows, minNumIters) - runTimestampBenchmark(numItems = 25, largeNumRows, minNumIters) - runTimestampBenchmark(numItems = 50, largeNumRows, minNumIters) - runTimestampBenchmark(numItems = 100, largeNumRows, minNumIters) - runTimestampBenchmark(numItems = 200, largeNumRows, minNumIters) - - runDateBenchmark(numItems = 5, smallNumRows, minNumIters) - runDateBenchmark(numItems = 10, smallNumRows, minNumIters) - runDateBenchmark(numItems = 25, smallNumRows, minNumIters) - runDateBenchmark(numItems = 50, smallNumRows, minNumIters) - runDateBenchmark(numItems = 100, smallNumRows, minNumIters) - runDateBenchmark(numItems = 200, smallNumRows, minNumIters) - - runArrayBenchmark(numItems = 5, smallNumRows, minNumIters) - runArrayBenchmark(numItems = 10, smallNumRows, minNumIters) - runArrayBenchmark(numItems = 25, smallNumRows, minNumIters) - runArrayBenchmark(numItems = 50, smallNumRows, minNumIters) - runArrayBenchmark(numItems = 100, smallNumRows, minNumIters) - runArrayBenchmark(numItems = 200, smallNumRows, minNumIters) - - runStructBenchmark(numItems = 5, smallNumRows, minNumIters) - runStructBenchmark(numItems = 10, smallNumRows, minNumIters) - runStructBenchmark(numItems = 25, smallNumRows, minNumIters) - runStructBenchmark(numItems = 50, smallNumRows, minNumIters) - runStructBenchmark(numItems = 100, smallNumRows, minNumIters) - runStructBenchmark(numItems = 200, smallNumRows, minNumIters) + numItemsSeq.foreach { numItems => + runByteBenchmark(numItems, largeNumRows, minNumIters) + } + numItemsSeq.foreach { numItems => + runShortBenchmark(numItems, largeNumRows, minNumIters) + } + numItemsSeq.foreach { numItems => + runIntBenchmark(numItems, largeNumRows, minNumIters) + } + numItemsSeq.foreach { numItems => + runLongBenchmark(numItems, largeNumRows, minNumIters) + } + numItemsSeq.foreach { numItems => + runFloatBenchmark(numItems, largeNumRows, minNumIters) + } + numItemsSeq.foreach { numItems => + runDoubleBenchmark(numItems, largeNumRows, minNumIters) + } + numItemsSeq.foreach { numItems => + runSmallDecimalBenchmark(numItems, smallNumRows, minNumIters) + } + numItemsSeq.foreach { numItems => + runLargeDecimalBenchmark(numItems, smallNumRows, minNumIters) + } + numItemsSeq.foreach { numItems => + runStringBenchmark(numItems, smallNumRows, minNumIters) + } + numItemsSeq.foreach { numItems => + runTimestampBenchmark(numItems, largeNumRows, minNumIters) + } + numItemsSeq.foreach { numItems => + runDateBenchmark(numItems, largeNumRows, minNumIters) + } + numItemsSeq.foreach { numItems => + runArrayBenchmark(numItems, smallNumRows, minNumIters) + } + numItemsSeq.foreach { numItems => + runStructBenchmark(numItems, smallNumRows, minNumIters) + } } } } From 97e15d1f7a5a406727a8a5f1844062b6f0c57022 Mon Sep 17 00:00:00 2001 From: Dongjoon Hyun Date: Sat, 12 Jan 2019 05:39:53 +0000 Subject: [PATCH 5/7] EC2 result on Jan. 11th --- .../InExpressionBenchmark-results.txt | 624 +++++++++--------- 1 file changed, 312 insertions(+), 312 deletions(-) diff --git a/sql/core/benchmarks/InExpressionBenchmark-results.txt b/sql/core/benchmarks/InExpressionBenchmark-results.txt index 240a57a7c9efc..d2adbded66149 100644 --- a/sql/core/benchmarks/InExpressionBenchmark-results.txt +++ b/sql/core/benchmarks/InExpressionBenchmark-results.txt @@ -2,550 +2,550 @@ In Expression Benchmark ================================================================================================ -Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 -Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +OpenJDK 64-Bit Server VM 1.8.0_191-b12 on Linux 3.10.0-862.3.2.el7.x86_64 +Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz 5 bytes: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 39 / 51 257.9 3.9 1.0X -InSet expression 59 / 63 170.7 5.9 0.7X +In expression 101 / 138 98.7 10.1 1.0X +InSet expression 125 / 136 79.7 12.5 0.8X -Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 -Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +OpenJDK 64-Bit Server VM 1.8.0_191-b12 on Linux 3.10.0-862.3.2.el7.x86_64 +Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz 10 bytes: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 47 / 51 213.2 4.7 1.0X -InSet expression 65 / 69 153.4 6.5 0.7X +In expression 101 / 111 99.3 10.1 1.0X +InSet expression 126 / 133 79.6 12.6 0.8X -Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 -Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +OpenJDK 64-Bit Server VM 1.8.0_191-b12 on Linux 3.10.0-862.3.2.el7.x86_64 +Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz 25 bytes: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 75 / 80 133.9 7.5 1.0X -InSet expression 91 / 97 109.8 9.1 0.8X +In expression 176 / 183 56.9 17.6 1.0X +InSet expression 174 / 184 57.4 17.4 1.0X -Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 -Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +OpenJDK 64-Bit Server VM 1.8.0_191-b12 on Linux 3.10.0-862.3.2.el7.x86_64 +Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz 50 bytes: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 123 / 127 81.1 12.3 1.0X -InSet expression 127 / 133 78.6 12.7 1.0X +In expression 299 / 312 33.5 29.9 1.0X +InSet expression 243 / 246 41.2 24.3 1.2X -Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 -Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +OpenJDK 64-Bit Server VM 1.8.0_191-b12 on Linux 3.10.0-862.3.2.el7.x86_64 +Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz 100 bytes: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 214 / 222 46.7 21.4 1.0X -InSet expression 246 / 254 40.6 24.6 0.9X +In expression 512 / 518 19.5 51.2 1.0X +InSet expression 388 / 400 25.8 38.8 1.3X -Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 -Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +OpenJDK 64-Bit Server VM 1.8.0_191-b12 on Linux 3.10.0-862.3.2.el7.x86_64 +Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz 200 bytes: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 370 / 375 27.0 37.0 1.0X -InSet expression 403 / 413 24.8 40.3 0.9X +In expression 854 / 866 11.7 85.4 1.0X +InSet expression 686 / 694 14.6 68.6 1.2X -Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 -Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +OpenJDK 64-Bit Server VM 1.8.0_191-b12 on Linux 3.10.0-862.3.2.el7.x86_64 +Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz 5 shorts: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 30 / 33 336.7 3.0 1.0X -InSet expression 114 / 120 87.7 11.4 0.3X +In expression 59 / 62 169.6 5.9 1.0X +InSet expression 163 / 168 61.3 16.3 0.4X -Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 -Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +OpenJDK 64-Bit Server VM 1.8.0_191-b12 on Linux 3.10.0-862.3.2.el7.x86_64 +Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz 10 shorts: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 34 / 36 295.4 3.4 1.0X -InSet expression 126 / 132 79.3 12.6 0.3X +In expression 76 / 78 132.0 7.6 1.0X +InSet expression 182 / 186 54.9 18.2 0.4X -Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 -Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +OpenJDK 64-Bit Server VM 1.8.0_191-b12 on Linux 3.10.0-862.3.2.el7.x86_64 +Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz 25 shorts: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 50 / 54 198.3 5.0 1.0X -InSet expression 127 / 133 78.5 12.7 0.4X +In expression 126 / 128 79.4 12.6 1.0X +InSet expression 190 / 193 52.7 19.0 0.7X -Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 -Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +OpenJDK 64-Bit Server VM 1.8.0_191-b12 on Linux 3.10.0-862.3.2.el7.x86_64 +Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz 50 shorts: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 82 / 86 122.5 8.2 1.0X -InSet expression 158 / 166 63.4 15.8 0.5X +In expression 227 / 227 44.1 22.7 1.0X +InSet expression 232 / 235 43.1 23.2 1.0X -Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 -Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +OpenJDK 64-Bit Server VM 1.8.0_191-b12 on Linux 3.10.0-862.3.2.el7.x86_64 +Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz 100 shorts: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 138 / 141 72.6 13.8 1.0X -InSet expression 135 / 139 74.1 13.5 1.0X +In expression 408 / 414 24.5 40.8 1.0X +InSet expression 203 / 209 49.3 20.3 2.0X -Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 -Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +OpenJDK 64-Bit Server VM 1.8.0_191-b12 on Linux 3.10.0-862.3.2.el7.x86_64 +Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz 200 shorts: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 254 / 260 39.4 25.4 1.0X -InSet expression 130 / 136 76.6 13.0 1.9X +In expression 762 / 765 13.1 76.2 1.0X +InSet expression 192 / 196 52.1 19.2 4.0X -Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 -Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +OpenJDK 64-Bit Server VM 1.8.0_191-b12 on Linux 3.10.0-862.3.2.el7.x86_64 +Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz 5 ints: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 26 / 28 380.2 2.6 1.0X -InSet expression 116 / 120 86.5 11.6 0.2X +In expression 53 / 57 187.3 5.3 1.0X +InSet expression 156 / 160 63.9 15.6 0.3X -Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 -Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +OpenJDK 64-Bit Server VM 1.8.0_191-b12 on Linux 3.10.0-862.3.2.el7.x86_64 +Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz 10 ints: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 33 / 35 303.9 3.3 1.0X -InSet expression 127 / 131 78.6 12.7 0.3X +In expression 70 / 74 142.4 7.0 1.0X +InSet expression 170 / 176 58.9 17.0 0.4X -Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 -Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +OpenJDK 64-Bit Server VM 1.8.0_191-b12 on Linux 3.10.0-862.3.2.el7.x86_64 +Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz 25 ints: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 49 / 51 205.4 4.9 1.0X -InSet expression 129 / 132 77.4 12.9 0.4X +In expression 125 / 126 80.2 12.5 1.0X +InSet expression 174 / 179 57.4 17.4 0.7X -Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 -Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +OpenJDK 64-Bit Server VM 1.8.0_191-b12 on Linux 3.10.0-862.3.2.el7.x86_64 +Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz 50 ints: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 78 / 80 128.6 7.8 1.0X -InSet expression 162 / 167 61.9 16.2 0.5X +In expression 220 / 222 45.5 22.0 1.0X +InSet expression 215 / 221 46.6 21.5 1.0X -Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 -Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +OpenJDK 64-Bit Server VM 1.8.0_191-b12 on Linux 3.10.0-862.3.2.el7.x86_64 +Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz 100 ints: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 135 / 139 73.8 13.5 1.0X -InSet expression 133 / 139 75.1 13.3 1.0X +In expression 404 / 407 24.8 40.4 1.0X +InSet expression 189 / 192 53.0 18.9 2.1X -Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 -Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +OpenJDK 64-Bit Server VM 1.8.0_191-b12 on Linux 3.10.0-862.3.2.el7.x86_64 +Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz 200 ints: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 254 / 259 39.4 25.4 1.0X -InSet expression 134 / 137 74.8 13.4 1.9X +In expression 760 / 764 13.2 76.0 1.0X +InSet expression 176 / 179 56.8 17.6 4.3X -Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 -Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +OpenJDK 64-Bit Server VM 1.8.0_191-b12 on Linux 3.10.0-862.3.2.el7.x86_64 +Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz 5 longs: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 24 / 25 417.0 2.4 1.0X -InSet expression 90 / 93 110.9 9.0 0.3X +In expression 50 / 52 200.3 5.0 1.0X +InSet expression 147 / 151 68.1 14.7 0.3X -Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 -Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +OpenJDK 64-Bit Server VM 1.8.0_191-b12 on Linux 3.10.0-862.3.2.el7.x86_64 +Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz 10 longs: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 23 / 25 437.7 2.3 1.0X -InSet expression 106 / 110 94.2 10.6 0.2X +In expression 65 / 66 154.8 6.5 1.0X +InSet expression 162 / 166 61.6 16.2 0.4X -Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 -Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +OpenJDK 64-Bit Server VM 1.8.0_191-b12 on Linux 3.10.0-862.3.2.el7.x86_64 +Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz 25 longs: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 41 / 43 241.6 4.1 1.0X -InSet expression 105 / 109 94.9 10.5 0.4X +In expression 117 / 119 85.1 11.7 1.0X +InSet expression 170 / 175 58.8 17.0 0.7X -Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 -Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +OpenJDK 64-Bit Server VM 1.8.0_191-b12 on Linux 3.10.0-862.3.2.el7.x86_64 +Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz 50 longs: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 69 / 71 144.7 6.9 1.0X -InSet expression 136 / 143 73.4 13.6 0.5X +In expression 207 / 208 48.3 20.7 1.0X +InSet expression 211 / 214 47.4 21.1 1.0X -Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 -Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +OpenJDK 64-Bit Server VM 1.8.0_191-b12 on Linux 3.10.0-862.3.2.el7.x86_64 +Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz 100 longs: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 127 / 130 78.6 12.7 1.0X -InSet expression 110 / 115 91.3 11.0 1.2X +In expression 387 / 389 25.9 38.7 1.0X +InSet expression 185 / 187 54.2 18.5 2.1X -Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 -Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +OpenJDK 64-Bit Server VM 1.8.0_191-b12 on Linux 3.10.0-862.3.2.el7.x86_64 +Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz 200 longs: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 246 / 249 40.7 24.6 1.0X -InSet expression 111 / 114 90.4 11.1 2.2X +In expression 742 / 744 13.5 74.2 1.0X +InSet expression 172 / 173 58.3 17.2 4.3X -Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 -Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +OpenJDK 64-Bit Server VM 1.8.0_191-b12 on Linux 3.10.0-862.3.2.el7.x86_64 +Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz 5 floats: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 37 / 40 271.4 3.7 1.0X -InSet expression 108 / 112 92.7 10.8 0.3X +In expression 88 / 91 113.0 8.8 1.0X +InSet expression 170 / 171 58.9 17.0 0.5X -Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 -Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +OpenJDK 64-Bit Server VM 1.8.0_191-b12 on Linux 3.10.0-862.3.2.el7.x86_64 +Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz 10 floats: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 52 / 55 192.2 5.2 1.0X -InSet expression 124 / 127 80.5 12.4 0.4X +In expression 129 / 132 77.5 12.9 1.0X +InSet expression 188 / 189 53.2 18.8 0.7X -Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 -Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +OpenJDK 64-Bit Server VM 1.8.0_191-b12 on Linux 3.10.0-862.3.2.el7.x86_64 +Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz 25 floats: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 108 / 111 92.4 10.8 1.0X -InSet expression 125 / 131 79.9 12.5 0.9X +In expression 243 / 244 41.2 24.3 1.0X +InSet expression 192 / 194 52.2 19.2 1.3X -Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 -Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +OpenJDK 64-Bit Server VM 1.8.0_191-b12 on Linux 3.10.0-862.3.2.el7.x86_64 +Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz 50 floats: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 202 / 206 49.5 20.2 1.0X -InSet expression 162 / 167 61.5 16.2 1.2X +In expression 421 / 424 23.7 42.1 1.0X +InSet expression 237 / 240 42.2 23.7 1.8X -Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 -Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +OpenJDK 64-Bit Server VM 1.8.0_191-b12 on Linux 3.10.0-862.3.2.el7.x86_64 +Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz 100 floats: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 387 / 410 25.8 38.7 1.0X -InSet expression 130 / 136 77.0 13.0 3.0X +In expression 775 / 777 12.9 77.5 1.0X +InSet expression 205 / 209 48.8 20.5 3.8X -Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 -Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +OpenJDK 64-Bit Server VM 1.8.0_191-b12 on Linux 3.10.0-862.3.2.el7.x86_64 +Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz 200 floats: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 1699 / 1787 5.9 169.9 1.0X -InSet expression 124 / 129 80.6 12.4 13.7X +In expression 3052 / 3151 3.3 305.2 1.0X +InSet expression 197 / 199 50.8 19.7 15.5X -Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 -Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +OpenJDK 64-Bit Server VM 1.8.0_191-b12 on Linux 3.10.0-862.3.2.el7.x86_64 +Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz 5 doubles: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 34 / 36 291.8 3.4 1.0X -InSet expression 102 / 105 97.7 10.2 0.3X +In expression 82 / 84 121.6 8.2 1.0X +InSet expression 167 / 169 60.0 16.7 0.5X -Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 -Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +OpenJDK 64-Bit Server VM 1.8.0_191-b12 on Linux 3.10.0-862.3.2.el7.x86_64 +Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz 10 doubles: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 52 / 53 194.0 5.2 1.0X -InSet expression 119 / 124 83.7 11.9 0.4X +In expression 124 / 131 80.3 12.4 1.0X +InSet expression 186 / 187 53.9 18.6 0.7X -Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 -Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +OpenJDK 64-Bit Server VM 1.8.0_191-b12 on Linux 3.10.0-862.3.2.el7.x86_64 +Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz 25 doubles: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 107 / 109 93.5 10.7 1.0X -InSet expression 123 / 127 81.1 12.3 0.9X +In expression 237 / 239 42.1 23.7 1.0X +InSet expression 193 / 194 51.8 19.3 1.2X -Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 -Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +OpenJDK 64-Bit Server VM 1.8.0_191-b12 on Linux 3.10.0-862.3.2.el7.x86_64 +Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz 50 doubles: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 201 / 203 49.9 20.1 1.0X -InSet expression 160 / 169 62.4 16.0 1.3X +In expression 416 / 418 24.0 41.6 1.0X +InSet expression 239 / 241 41.8 23.9 1.7X -Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 -Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +OpenJDK 64-Bit Server VM 1.8.0_191-b12 on Linux 3.10.0-862.3.2.el7.x86_64 +Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz 100 doubles: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 384 / 387 26.0 38.4 1.0X -InSet expression 125 / 130 80.3 12.5 3.1X +In expression 771 / 774 13.0 77.1 1.0X +InSet expression 204 / 207 49.1 20.4 3.8X -Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 -Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +OpenJDK 64-Bit Server VM 1.8.0_191-b12 on Linux 3.10.0-862.3.2.el7.x86_64 +Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz 200 doubles: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 1990 / 2015 5.0 199.0 1.0X -InSet expression 119 / 123 83.9 11.9 16.7X +In expression 3755 / 3801 2.7 375.5 1.0X +InSet expression 194 / 197 51.5 19.4 19.3X -Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 -Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +OpenJDK 64-Bit Server VM 1.8.0_191-b12 on Linux 3.10.0-862.3.2.el7.x86_64 +Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz 5 small decimals: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 22 / 24 45.9 21.8 1.0X -InSet expression 71 / 74 14.1 70.7 0.3X +In expression 46 / 49 21.6 46.4 1.0X +InSet expression 136 / 141 7.4 135.7 0.3X -Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 -Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +OpenJDK 64-Bit Server VM 1.8.0_191-b12 on Linux 3.10.0-862.3.2.el7.x86_64 +Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz 10 small decimals: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 25 / 27 39.2 25.5 1.0X -InSet expression 72 / 76 13.9 71.8 0.4X +In expression 57 / 61 17.5 57.1 1.0X +InSet expression 137 / 140 7.3 137.2 0.4X -Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 -Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +OpenJDK 64-Bit Server VM 1.8.0_191-b12 on Linux 3.10.0-862.3.2.el7.x86_64 +Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz 25 small decimals: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 38 / 41 26.3 38.1 1.0X -InSet expression 75 / 78 13.3 75.4 0.5X +In expression 89 / 92 11.2 89.4 1.0X +InSet expression 139 / 141 7.2 138.7 0.6X -Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 -Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +OpenJDK 64-Bit Server VM 1.8.0_191-b12 on Linux 3.10.0-862.3.2.el7.x86_64 +Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz 50 small decimals: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 89 / 92 11.2 89.0 1.0X -InSet expression 80 / 85 12.5 79.9 1.1X +In expression 170 / 171 5.9 169.5 1.0X +InSet expression 146 / 148 6.9 145.8 1.2X -Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 -Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +OpenJDK 64-Bit Server VM 1.8.0_191-b12 on Linux 3.10.0-862.3.2.el7.x86_64 +Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz 100 small decimals: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 217 / 222 4.6 217.2 1.0X -InSet expression 78 / 81 12.9 77.5 2.8X +In expression 429 / 431 2.3 429.2 1.0X +InSet expression 145 / 148 6.9 144.9 3.0X -Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 -Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +OpenJDK 64-Bit Server VM 1.8.0_191-b12 on Linux 3.10.0-862.3.2.el7.x86_64 +Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz 200 small decimals: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 486 / 494 2.1 485.9 1.0X -InSet expression 82 / 85 12.2 81.9 5.9X +In expression 995 / 1207 1.0 995.0 1.0X +InSet expression 154 / 158 6.5 154.1 6.5X -Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 -Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +OpenJDK 64-Bit Server VM 1.8.0_191-b12 on Linux 3.10.0-862.3.2.el7.x86_64 +Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz 5 large decimals: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 129 / 133 7.8 128.6 1.0X -InSet expression 94 / 98 10.7 93.8 1.4X +In expression 268 / 307 3.7 268.3 1.0X +InSet expression 171 / 176 5.8 171.1 1.6X -Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 -Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +OpenJDK 64-Bit Server VM 1.8.0_191-b12 on Linux 3.10.0-862.3.2.el7.x86_64 +Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz 10 large decimals: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 217 / 228 4.6 217.4 1.0X -InSet expression 94 / 98 10.6 94.1 2.3X +In expression 455 / 458 2.2 455.2 1.0X +InSet expression 173 / 176 5.8 173.1 2.6X -Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 -Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +OpenJDK 64-Bit Server VM 1.8.0_191-b12 on Linux 3.10.0-862.3.2.el7.x86_64 +Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz 25 large decimals: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 532 / 540 1.9 532.3 1.0X -InSet expression 99 / 102 10.1 99.0 5.4X +In expression 1095 / 1099 0.9 1095.2 1.0X +InSet expression 179 / 183 5.6 178.7 6.1X -Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 -Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +OpenJDK 64-Bit Server VM 1.8.0_191-b12 on Linux 3.10.0-862.3.2.el7.x86_64 +Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz 50 large decimals: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 1032 / 1036 1.0 1031.8 1.0X -InSet expression 101 / 106 9.9 100.8 10.2X +In expression 2099 / 2110 0.5 2098.6 1.0X +InSet expression 183 / 187 5.5 183.2 11.5X -Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 -Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +OpenJDK 64-Bit Server VM 1.8.0_191-b12 on Linux 3.10.0-862.3.2.el7.x86_64 +Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz 100 large decimals: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 2088 / 2115 0.5 2087.6 1.0X -InSet expression 115 / 122 8.7 115.0 18.2X +In expression 3885 / 3911 0.3 3885.4 1.0X +InSet expression 207 / 223 4.8 206.6 18.8X -Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 -Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +OpenJDK 64-Bit Server VM 1.8.0_191-b12 on Linux 3.10.0-862.3.2.el7.x86_64 +Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz 200 large decimals: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 4272 / 4308 0.2 4271.5 1.0X -InSet expression 121 / 127 8.3 120.7 35.4X +In expression 7759 / 7867 0.1 7759.2 1.0X +InSet expression 214 / 217 4.7 214.4 36.2X -Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 -Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +OpenJDK 64-Bit Server VM 1.8.0_191-b12 on Linux 3.10.0-862.3.2.el7.x86_64 +Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz 5 strings: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 71 / 74 14.2 70.7 1.0X -InSet expression 82 / 85 12.3 81.6 0.9X +In expression 126 / 127 7.9 126.0 1.0X +InSet expression 139 / 142 7.2 139.0 0.9X -Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 -Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +OpenJDK 64-Bit Server VM 1.8.0_191-b12 on Linux 3.10.0-862.3.2.el7.x86_64 +Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz 10 strings: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 75 / 78 13.3 75.3 1.0X -InSet expression 84 / 88 11.9 84.3 0.9X +In expression 128 / 132 7.8 128.2 1.0X +InSet expression 142 / 144 7.0 142.0 0.9X -Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 -Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +OpenJDK 64-Bit Server VM 1.8.0_191-b12 on Linux 3.10.0-862.3.2.el7.x86_64 +Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz 25 strings: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 87 / 91 11.5 86.8 1.0X -InSet expression 88 / 91 11.4 88.1 1.0X +In expression 151 / 153 6.6 150.9 1.0X +InSet expression 150 / 152 6.7 150.1 1.0X -Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 -Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +OpenJDK 64-Bit Server VM 1.8.0_191-b12 on Linux 3.10.0-862.3.2.el7.x86_64 +Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz 50 strings: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 102 / 106 9.8 102.0 1.0X -InSet expression 92 / 96 10.9 91.9 1.1X +In expression 238 / 240 4.2 238.5 1.0X +InSet expression 152 / 154 6.6 152.4 1.6X -Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 -Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +OpenJDK 64-Bit Server VM 1.8.0_191-b12 on Linux 3.10.0-862.3.2.el7.x86_64 +Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz 100 strings: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 145 / 151 6.9 144.6 1.0X -InSet expression 87 / 93 11.5 87.1 1.7X +In expression 431 / 432 2.3 431.2 1.0X +InSet expression 149 / 151 6.7 148.8 2.9X -Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 -Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +OpenJDK 64-Bit Server VM 1.8.0_191-b12 on Linux 3.10.0-862.3.2.el7.x86_64 +Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz 200 strings: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 414 / 421 2.4 413.7 1.0X -InSet expression 88 / 93 11.3 88.5 4.7X +In expression 822 / 1060 1.2 821.7 1.0X +InSet expression 153 / 162 6.5 152.9 5.4X -Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 -Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +OpenJDK 64-Bit Server VM 1.8.0_191-b12 on Linux 3.10.0-862.3.2.el7.x86_64 +Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz 5 timestamps: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 17 / 18 601.0 1.7 1.0X -InSet expression 92 / 95 109.1 9.2 0.2X +In expression 42 / 44 240.5 4.2 1.0X +InSet expression 158 / 161 63.5 15.8 0.3X -Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 -Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +OpenJDK 64-Bit Server VM 1.8.0_191-b12 on Linux 3.10.0-862.3.2.el7.x86_64 +Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz 10 timestamps: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 27 / 28 376.3 2.7 1.0X -InSet expression 100 / 105 99.6 10.0 0.3X +In expression 57 / 59 174.5 5.7 1.0X +InSet expression 173 / 176 57.8 17.3 0.3X -Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 -Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +OpenJDK 64-Bit Server VM 1.8.0_191-b12 on Linux 3.10.0-862.3.2.el7.x86_64 +Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz 25 timestamps: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 57 / 59 175.3 5.7 1.0X -InSet expression 128 / 131 78.3 12.8 0.4X +In expression 110 / 113 91.1 11.0 1.0X +InSet expression 223 / 226 44.9 22.3 0.5X -Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 -Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +OpenJDK 64-Bit Server VM 1.8.0_191-b12 on Linux 3.10.0-862.3.2.el7.x86_64 +Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz 50 timestamps: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 107 / 110 93.1 10.7 1.0X -InSet expression 137 / 140 73.0 13.7 0.8X +In expression 190 / 193 52.6 19.0 1.0X +InSet expression 238 / 240 42.1 23.8 0.8X -Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 -Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +OpenJDK 64-Bit Server VM 1.8.0_191-b12 on Linux 3.10.0-862.3.2.el7.x86_64 +Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz 100 timestamps: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 214 / 220 46.7 21.4 1.0X -InSet expression 119 / 123 84.1 11.9 1.8X +In expression 355 / 367 28.2 35.5 1.0X +InSet expression 221 / 222 45.2 22.1 1.6X -Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 -Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +OpenJDK 64-Bit Server VM 1.8.0_191-b12 on Linux 3.10.0-862.3.2.el7.x86_64 +Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz 200 timestamps: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 431 / 454 23.2 43.1 1.0X -InSet expression 110 / 113 91.2 11.0 3.9X +In expression 692 / 694 14.5 69.2 1.0X +InSet expression 220 / 222 45.4 22.0 3.1X -Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 -Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +OpenJDK 64-Bit Server VM 1.8.0_191-b12 on Linux 3.10.0-862.3.2.el7.x86_64 +Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz 5 dates: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 198 / 201 50.5 19.8 1.0X -InSet expression 278 / 282 36.0 27.8 0.7X +In expression 143 / 145 70.0 14.3 1.0X +InSet expression 264 / 269 37.9 26.4 0.5X -Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 -Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +OpenJDK 64-Bit Server VM 1.8.0_191-b12 on Linux 3.10.0-862.3.2.el7.x86_64 +Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz 10 dates: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 178 / 182 56.2 17.8 1.0X -InSet expression 280 / 292 35.7 28.0 0.6X +In expression 141 / 142 71.1 14.1 1.0X +InSet expression 268 / 269 37.3 26.8 0.5X -Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 -Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +OpenJDK 64-Bit Server VM 1.8.0_191-b12 on Linux 3.10.0-862.3.2.el7.x86_64 +Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz 25 dates: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 220 / 223 45.4 22.0 1.0X -InSet expression 291 / 293 34.4 29.1 0.8X +In expression 196 / 196 51.1 19.6 1.0X +InSet expression 277 / 282 36.1 27.7 0.7X -Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 -Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +OpenJDK 64-Bit Server VM 1.8.0_191-b12 on Linux 3.10.0-862.3.2.el7.x86_64 +Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz 50 dates: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 282 / 313 35.4 28.2 1.0X -InSet expression 303 / 339 32.9 30.3 0.9X +In expression 338 / 351 29.5 33.8 1.0X +InSet expression 287 / 290 34.9 28.7 1.2X -Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 -Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +OpenJDK 64-Bit Server VM 1.8.0_191-b12 on Linux 3.10.0-862.3.2.el7.x86_64 +Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz 100 dates: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 356 / 409 28.1 35.6 1.0X -InSet expression 306 / 310 32.7 30.6 1.2X +In expression 541 / 542 18.5 54.1 1.0X +InSet expression 299 / 300 33.5 29.9 1.8X -Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 -Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +OpenJDK 64-Bit Server VM 1.8.0_191-b12 on Linux 3.10.0-862.3.2.el7.x86_64 +Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz 200 dates: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 570 / 574 17.5 57.0 1.0X -InSet expression 282 / 285 35.4 28.2 2.0X +In expression 883 / 900 11.3 88.3 1.0X +InSet expression 296 / 298 33.8 29.6 3.0X -Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 -Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +OpenJDK 64-Bit Server VM 1.8.0_191-b12 on Linux 3.10.0-862.3.2.el7.x86_64 +Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz 5 arrays: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 25 / 26 39.9 25.0 1.0X -InSet expression 48 / 50 20.8 48.0 0.5X +In expression 51 / 53 19.6 51.0 1.0X +InSet expression 96 / 97 10.5 95.7 0.5X -Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 -Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +OpenJDK 64-Bit Server VM 1.8.0_191-b12 on Linux 3.10.0-862.3.2.el7.x86_64 +Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz 10 arrays: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 40 / 41 25.3 39.6 1.0X -InSet expression 48 / 50 20.8 48.2 0.8X +In expression 77 / 79 13.1 76.6 1.0X +InSet expression 96 / 98 10.4 96.0 0.8X -Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 -Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +OpenJDK 64-Bit Server VM 1.8.0_191-b12 on Linux 3.10.0-862.3.2.el7.x86_64 +Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz 25 arrays: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 150 / 153 6.7 149.7 1.0X -InSet expression 61 / 63 16.4 61.1 2.4X +In expression 275 / 276 3.6 274.6 1.0X +InSet expression 119 / 121 8.4 119.1 2.3X -Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 -Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +OpenJDK 64-Bit Server VM 1.8.0_191-b12 on Linux 3.10.0-862.3.2.el7.x86_64 +Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz 50 arrays: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 325 / 332 3.1 324.6 1.0X -InSet expression 83 / 87 12.0 83.5 3.9X +In expression 592 / 663 1.7 592.1 1.0X +InSet expression 164 / 172 6.1 164.3 3.6X -Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 -Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +OpenJDK 64-Bit Server VM 1.8.0_191-b12 on Linux 3.10.0-862.3.2.el7.x86_64 +Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz 100 arrays: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 683 / 687 1.5 682.7 1.0X -InSet expression 101 / 106 9.9 100.5 6.8X +In expression 2555 / 2733 0.4 2554.7 1.0X +InSet expression 194 / 198 5.2 193.9 13.2X -Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 -Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +OpenJDK 64-Bit Server VM 1.8.0_191-b12 on Linux 3.10.0-862.3.2.el7.x86_64 +Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz 200 arrays: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 1742 / 2002 0.6 1742.0 1.0X -InSet expression 135 / 138 7.4 135.1 12.9X +In expression 9215 / 9778 0.1 9214.8 1.0X +InSet expression 253 / 256 3.9 253.2 36.4X -Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 -Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +OpenJDK 64-Bit Server VM 1.8.0_191-b12 on Linux 3.10.0-862.3.2.el7.x86_64 +Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz 5 structs: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 23 / 25 43.0 23.2 1.0X -InSet expression 82 / 86 12.3 81.5 0.3X +In expression 46 / 47 22.0 45.5 1.0X +InSet expression 157 / 162 6.4 156.5 0.3X -Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 -Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +OpenJDK 64-Bit Server VM 1.8.0_191-b12 on Linux 3.10.0-862.3.2.el7.x86_64 +Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz 10 structs: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 29 / 31 34.1 29.3 1.0X -InSet expression 82 / 84 12.3 81.6 0.4X +In expression 61 / 63 16.5 60.7 1.0X +InSet expression 158 / 161 6.3 158.2 0.4X -Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 -Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +OpenJDK 64-Bit Server VM 1.8.0_191-b12 on Linux 3.10.0-862.3.2.el7.x86_64 +Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz 25 structs: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 72 / 73 13.9 71.8 1.0X -InSet expression 102 / 107 9.8 102.4 0.7X +In expression 133 / 140 7.5 132.8 1.0X +InSet expression 199 / 202 5.0 198.8 0.7X -Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 -Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +OpenJDK 64-Bit Server VM 1.8.0_191-b12 on Linux 3.10.0-862.3.2.el7.x86_64 +Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz 50 structs: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 196 / 199 5.1 195.7 1.0X -InSet expression 147 / 150 6.8 146.9 1.3X +In expression 369 / 372 2.7 369.1 1.0X +InSet expression 283 / 294 3.5 282.7 1.3X -Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 -Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +OpenJDK 64-Bit Server VM 1.8.0_191-b12 on Linux 3.10.0-862.3.2.el7.x86_64 +Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz 100 structs: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 475 / 479 2.1 475.2 1.0X -InSet expression 173 / 180 5.8 173.1 2.7X +In expression 1570 / 1731 0.6 1569.8 1.0X +InSet expression 332 / 334 3.0 332.0 4.7X -Java HotSpot(TM) 64-Bit Server VM 1.8.0_192-b12 on Mac OS X 10.14 -Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz +OpenJDK 64-Bit Server VM 1.8.0_191-b12 on Linux 3.10.0-862.3.2.el7.x86_64 +Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz 200 structs: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ -In expression 1102 / 1261 0.9 1102.0 1.0X -InSet expression 236 / 240 4.2 235.7 4.7X +In expression 6332 / 6794 0.2 6331.8 1.0X +InSet expression 441 / 444 2.3 440.9 14.4X From 79ade5d4a118ba766ef34e9dc2a3b06587a02a2c Mon Sep 17 00:00:00 2001 From: Anton Okolnychyi Date: Mon, 14 Jan 2019 08:39:34 +0000 Subject: [PATCH 6/7] Add wildcard import --- .../spark/sql/execution/benchmark/InExpressionBenchmark.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sql/core/src/test/scala/org/apache/spark/sql/execution/benchmark/InExpressionBenchmark.scala b/sql/core/src/test/scala/org/apache/spark/sql/execution/benchmark/InExpressionBenchmark.scala index 4446711db8d6a..d8744e5b188cf 100644 --- a/sql/core/src/test/scala/org/apache/spark/sql/execution/benchmark/InExpressionBenchmark.scala +++ b/sql/core/src/test/scala/org/apache/spark/sql/execution/benchmark/InExpressionBenchmark.scala @@ -21,7 +21,7 @@ import org.apache.spark.benchmark.Benchmark import org.apache.spark.sql.DataFrame import org.apache.spark.sql.functions.{array, struct} import org.apache.spark.sql.internal.SQLConf -import org.apache.spark.sql.types.{ByteType, DateType, DecimalType, DoubleType, FloatType, IntegerType, ShortType, StringType, TimestampType} +import org.apache.spark.sql.types._ /** * A benchmark that compares the performance of different ways to evaluate SQL IN expressions. From 713f3dbcfafbdb52d05c611259f8d7bee41f7393 Mon Sep 17 00:00:00 2001 From: Anton Okolnychyi Date: Tue, 15 Jan 2019 14:22:40 +0000 Subject: [PATCH 7/7] Modify docs --- .../spark/sql/execution/benchmark/InExpressionBenchmark.scala | 3 +++ 1 file changed, 3 insertions(+) diff --git a/sql/core/src/test/scala/org/apache/spark/sql/execution/benchmark/InExpressionBenchmark.scala b/sql/core/src/test/scala/org/apache/spark/sql/execution/benchmark/InExpressionBenchmark.scala index d8744e5b188cf..cf4a34b20627a 100644 --- a/sql/core/src/test/scala/org/apache/spark/sql/execution/benchmark/InExpressionBenchmark.scala +++ b/sql/core/src/test/scala/org/apache/spark/sql/execution/benchmark/InExpressionBenchmark.scala @@ -26,6 +26,9 @@ import org.apache.spark.sql.types._ /** * A benchmark that compares the performance of different ways to evaluate SQL IN expressions. * + * Specifically, this class compares the if-based approach, which might iterate through all items + * inside the IN value list, to other options with better worst-case time complexities (e.g., sets). + * * To run this benchmark: * {{{ * 1. without sbt: bin/spark-submit --class