Repository: spark Updated Branches: refs/heads/master d522a563a -> c79072aaf
[SPARK-25478][SQL][TEST] Refactor CompressionSchemeBenchmark to use main method ## What changes were proposed in this pull request? Refactor `CompressionSchemeBenchmark` to use main method. Generate benchmark result: ```sh SPARK_GENERATE_BENCHMARK_FILES=1 build/sbt "sql/test:runMain org.apache.spark.sql.execution.columnar.compression.CompressionSchemeBenchmark" ``` ## How was this patch tested? manual tests Closes #22486 from wangyum/SPARK-25478. Lead-authored-by: Yuming Wang <[email protected]> Co-authored-by: Dongjoon Hyun <[email protected]> Signed-off-by: Dongjoon Hyun <[email protected]> Project: http://git-wip-us.apache.org/repos/asf/spark/repo Commit: http://git-wip-us.apache.org/repos/asf/spark/commit/c79072aa Tree: http://git-wip-us.apache.org/repos/asf/spark/tree/c79072aa Diff: http://git-wip-us.apache.org/repos/asf/spark/diff/c79072aa Branch: refs/heads/master Commit: c79072aafa2f406c342e393e0c61bb5cb3e89a7f Parents: d522a56 Author: Yuming Wang <[email protected]> Authored: Sun Sep 23 20:46:40 2018 -0700 Committer: Dongjoon Hyun <[email protected]> Committed: Sun Sep 23 20:46:40 2018 -0700 ---------------------------------------------------------------------- .../CompressionSchemeBenchmark-results.txt | 137 ++++++++++++++++++ .../CompressionSchemeBenchmark.scala | 138 +++---------------- 2 files changed, 156 insertions(+), 119 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/spark/blob/c79072aa/sql/core/benchmarks/CompressionSchemeBenchmark-results.txt ---------------------------------------------------------------------- diff --git a/sql/core/benchmarks/CompressionSchemeBenchmark-results.txt b/sql/core/benchmarks/CompressionSchemeBenchmark-results.txt new file mode 100644 index 0000000..caa9378 --- /dev/null +++ b/sql/core/benchmarks/CompressionSchemeBenchmark-results.txt @@ -0,0 +1,137 @@ +================================================================================================ +Compression Scheme Benchmark +================================================================================================ + +OpenJDK 64-Bit Server VM 1.8.0_181-b13 on Linux 3.10.0-862.3.2.el7.x86_64 +Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz +BOOLEAN Encode: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative +------------------------------------------------------------------------------------------------ +PassThrough(1.000) 4 / 4 17998.9 0.1 1.0X +RunLengthEncoding(2.501) 680 / 680 98.7 10.1 0.0X +BooleanBitSet(0.125) 365 / 365 183.9 5.4 0.0X + +OpenJDK 64-Bit Server VM 1.8.0_181-b13 on Linux 3.10.0-862.3.2.el7.x86_64 +Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz +BOOLEAN Decode: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative +------------------------------------------------------------------------------------------------ +PassThrough 144 / 144 466.5 2.1 1.0X +RunLengthEncoding 679 / 679 98.9 10.1 0.2X +BooleanBitSet 1425 / 1431 47.1 21.2 0.1X + +OpenJDK 64-Bit Server VM 1.8.0_181-b13 on Linux 3.10.0-862.3.2.el7.x86_64 +Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz +SHORT Encode (Lower Skew): Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative +------------------------------------------------------------------------------------------------ +PassThrough(1.000) 7 / 7 10115.0 0.1 1.0X +RunLengthEncoding(1.494) 1671 / 1672 40.2 24.9 0.0X + +OpenJDK 64-Bit Server VM 1.8.0_181-b13 on Linux 3.10.0-862.3.2.el7.x86_64 +Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz +SHORT Decode (Lower Skew): Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative +------------------------------------------------------------------------------------------------ +PassThrough 1128 / 1128 59.5 16.8 1.0X +RunLengthEncoding 1630 / 1633 41.2 24.3 0.7X + +OpenJDK 64-Bit Server VM 1.8.0_181-b13 on Linux 3.10.0-862.3.2.el7.x86_64 +Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz +SHORT Encode (Higher Skew): Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative +------------------------------------------------------------------------------------------------ +PassThrough(1.000) 7 / 7 10164.2 0.1 1.0X +RunLengthEncoding(1.989) 1562 / 1563 43.0 23.3 0.0X + +OpenJDK 64-Bit Server VM 1.8.0_181-b13 on Linux 3.10.0-862.3.2.el7.x86_64 +Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz +SHORT Decode (Higher Skew): Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative +------------------------------------------------------------------------------------------------ +PassThrough 1127 / 1127 59.6 16.8 1.0X +RunLengthEncoding 1629 / 1631 41.2 24.3 0.7X + +OpenJDK 64-Bit Server VM 1.8.0_181-b13 on Linux 3.10.0-862.3.2.el7.x86_64 +Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz +INT Encode (Lower Skew): Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative +------------------------------------------------------------------------------------------------ +PassThrough(1.000) 22 / 23 2983.2 0.3 1.0X +RunLengthEncoding(1.003) 2426 / 2427 27.7 36.1 0.0X +DictionaryEncoding(0.500) 958 / 958 70.1 14.3 0.0X +IntDelta(0.250) 286 / 286 235.0 4.3 0.1X + +OpenJDK 64-Bit Server VM 1.8.0_181-b13 on Linux 3.10.0-862.3.2.el7.x86_64 +Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz +INT Decode (Lower Skew): Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative +------------------------------------------------------------------------------------------------ +PassThrough 1268 / 1269 52.9 18.9 1.0X +RunLengthEncoding 1906 / 1911 35.2 28.4 0.7X +DictionaryEncoding 981 / 982 68.4 14.6 1.3X +IntDelta 812 / 817 82.6 12.1 1.6X + +OpenJDK 64-Bit Server VM 1.8.0_181-b13 on Linux 3.10.0-862.3.2.el7.x86_64 +Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz +INT Encode (Higher Skew): Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative +------------------------------------------------------------------------------------------------ +PassThrough(1.000) 23 / 23 2926.9 0.3 1.0X +RunLengthEncoding(1.326) 2614 / 2614 25.7 38.9 0.0X +DictionaryEncoding(0.501) 1024 / 1024 65.5 15.3 0.0X +IntDelta(0.250) 286 / 286 234.7 4.3 0.1X + +OpenJDK 64-Bit Server VM 1.8.0_181-b13 on Linux 3.10.0-862.3.2.el7.x86_64 +Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz +INT Decode (Higher Skew): Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative +------------------------------------------------------------------------------------------------ +PassThrough 1433 / 1433 46.8 21.4 1.0X +RunLengthEncoding 1923 / 1926 34.9 28.6 0.7X +DictionaryEncoding 1285 / 1285 52.2 19.2 1.1X +IntDelta 1129 / 1137 59.4 16.8 1.3X + +OpenJDK 64-Bit Server VM 1.8.0_181-b13 on Linux 3.10.0-862.3.2.el7.x86_64 +Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz +LONG Encode (Lower Skew): Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative +------------------------------------------------------------------------------------------------ +PassThrough(1.000) 45 / 45 1495.6 0.7 1.0X +RunLengthEncoding(0.738) 2662 / 2663 25.2 39.7 0.0X +DictionaryEncoding(0.250) 1269 / 1269 52.9 18.9 0.0X +LongDelta(0.125) 450 / 450 149.1 6.7 0.1X + +OpenJDK 64-Bit Server VM 1.8.0_181-b13 on Linux 3.10.0-862.3.2.el7.x86_64 +Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz +LONG Decode (Lower Skew): Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative +------------------------------------------------------------------------------------------------ +PassThrough 1483 / 1483 45.3 22.1 1.0X +RunLengthEncoding 1875 / 1875 35.8 27.9 0.8X +DictionaryEncoding 1213 / 1214 55.3 18.1 1.2X +LongDelta 816 / 817 82.2 12.2 1.8X + +OpenJDK 64-Bit Server VM 1.8.0_181-b13 on Linux 3.10.0-862.3.2.el7.x86_64 +Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz +LONG Encode (Higher Skew): Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative +------------------------------------------------------------------------------------------------ +PassThrough(1.000) 45 / 45 1489.3 0.7 1.0X +RunLengthEncoding(1.003) 2906 / 2906 23.1 43.3 0.0X +DictionaryEncoding(0.251) 1610 / 1610 41.7 24.0 0.0X +LongDelta(0.125) 451 / 451 148.7 6.7 0.1X + +OpenJDK 64-Bit Server VM 1.8.0_181-b13 on Linux 3.10.0-862.3.2.el7.x86_64 +Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz +LONG Decode (Higher Skew): Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative +------------------------------------------------------------------------------------------------ +PassThrough 1485 / 1485 45.2 22.1 1.0X +RunLengthEncoding 1889 / 1890 35.5 28.2 0.8X +DictionaryEncoding 1215 / 1216 55.2 18.1 1.2X +LongDelta 1107 / 1110 60.6 16.5 1.3X + +OpenJDK 64-Bit Server VM 1.8.0_181-b13 on Linux 3.10.0-862.3.2.el7.x86_64 +Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz +STRING Encode: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative +------------------------------------------------------------------------------------------------ +PassThrough(1.000) 67 / 68 994.5 1.0 1.0X +RunLengthEncoding(0.894) 5877 / 5882 11.4 87.6 0.0X +DictionaryEncoding(0.167) 3597 / 3602 18.7 53.6 0.0X + +OpenJDK 64-Bit Server VM 1.8.0_181-b13 on Linux 3.10.0-862.3.2.el7.x86_64 +Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz +STRING Decode: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative +------------------------------------------------------------------------------------------------ +PassThrough 3243 / 3244 20.7 48.3 1.0X +RunLengthEncoding 3598 / 3601 18.7 53.6 0.9X +DictionaryEncoding 3182 / 3182 21.1 47.4 1.0X + + http://git-wip-us.apache.org/repos/asf/spark/blob/c79072aa/sql/core/src/test/scala/org/apache/spark/sql/execution/columnar/compression/CompressionSchemeBenchmark.scala ---------------------------------------------------------------------- diff --git a/sql/core/src/test/scala/org/apache/spark/sql/execution/columnar/compression/CompressionSchemeBenchmark.scala b/sql/core/src/test/scala/org/apache/spark/sql/execution/columnar/compression/CompressionSchemeBenchmark.scala index 9c26d67..ff0e4ac 100644 --- a/sql/core/src/test/scala/org/apache/spark/sql/execution/columnar/compression/CompressionSchemeBenchmark.scala +++ b/sql/core/src/test/scala/org/apache/spark/sql/execution/columnar/compression/CompressionSchemeBenchmark.scala @@ -23,7 +23,7 @@ import java.nio.charset.StandardCharsets import org.apache.commons.lang3.RandomStringUtils import org.apache.commons.math3.distribution.LogNormalDistribution -import org.apache.spark.benchmark.Benchmark +import org.apache.spark.benchmark.{Benchmark, BenchmarkBase} import org.apache.spark.sql.catalyst.expressions.GenericInternalRow import org.apache.spark.sql.execution.columnar.{BOOLEAN, INT, LONG, NativeColumnType, SHORT, STRING} import org.apache.spark.sql.types.AtomicType @@ -31,8 +31,15 @@ import org.apache.spark.util.Utils._ /** * Benchmark to decoders using various compression schemes. + * To run this benchmark: + * {{{ + * 1. without sbt: bin/spark-submit --class <this class> <spark sql test jar> + * 2. build/sbt "sql/test:runMain <this class>" + * 3. generate result: SPARK_GENERATE_BENCHMARK_FILES=1 build/sbt "sql/test:runMain <this class>" + * Results will be written to "benchmarks/CompressionSchemeBenchmark-results.txt". + * }}} */ -object CompressionSchemeBenchmark extends AllCompressionSchemes { +object CompressionSchemeBenchmark extends BenchmarkBase with AllCompressionSchemes { private[this] def allocateLocal(size: Int): ByteBuffer = { ByteBuffer.allocate(size).order(ByteOrder.nativeOrder) @@ -77,7 +84,7 @@ object CompressionSchemeBenchmark extends AllCompressionSchemes { count: Int, tpe: NativeColumnType[T], input: ByteBuffer): Unit = { - val benchmark = new Benchmark(name, iters * count.toLong) + val benchmark = new Benchmark(name, iters * count.toLong, output = output) schemes.filter(_.supports(tpe)).foreach { scheme => val (compressFunc, compressionRatio, buf) = prepareEncodeInternal(count, tpe, scheme, input) @@ -101,7 +108,7 @@ object CompressionSchemeBenchmark extends AllCompressionSchemes { count: Int, tpe: NativeColumnType[T], input: ByteBuffer): Unit = { - val benchmark = new Benchmark(name, iters * count.toLong) + val benchmark = new Benchmark(name, iters * count.toLong, output = output) schemes.filter(_.supports(tpe)).foreach { scheme => val (compressFunc, _, buf) = prepareEncodeInternal(count, tpe, scheme, input) @@ -138,21 +145,7 @@ object CompressionSchemeBenchmark extends AllCompressionSchemes { testData.put(i * BOOLEAN.defaultSize, g()) } - // Intel(R) Core(TM) i7-4578U CPU @ 3.00GHz - // BOOLEAN Encode: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative - // ------------------------------------------------------------------------------------------- - // PassThrough(1.000) 3 / 4 19300.2 0.1 1.0X - // RunLengthEncoding(2.491) 923 / 939 72.7 13.8 0.0X - // BooleanBitSet(0.125) 359 / 363 187.1 5.3 0.0X runEncodeBenchmark("BOOLEAN Encode", iters, count, BOOLEAN, testData) - - - // Intel(R) Core(TM) i7-4578U CPU @ 3.00GHz - // BOOLEAN Decode: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative - // ------------------------------------------------------------------------------------------- - // PassThrough 129 / 136 519.8 1.9 1.0X - // RunLengthEncoding 613 / 623 109.4 9.1 0.2X - // BooleanBitSet 1196 / 1222 56.1 17.8 0.1X runDecodeBenchmark("BOOLEAN Decode", iters, count, BOOLEAN, testData) } @@ -165,18 +158,7 @@ object CompressionSchemeBenchmark extends AllCompressionSchemes { testData.putShort(i * SHORT.defaultSize, g1().toShort) } - // Intel(R) Core(TM) i7-4578U CPU @ 3.00GHz - // SHORT Encode (Lower Skew): Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative - // ------------------------------------------------------------------------------------------- - // PassThrough(1.000) 6 / 7 10971.4 0.1 1.0X - // RunLengthEncoding(1.510) 1526 / 1542 44.0 22.7 0.0X runEncodeBenchmark("SHORT Encode (Lower Skew)", iters, count, SHORT, testData) - - // Intel(R) Core(TM) i7-4578U CPU @ 3.00GHz - // SHORT Decode (Lower Skew): Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative - // ------------------------------------------------------------------------------------------- - // PassThrough 811 / 837 82.8 12.1 1.0X - // RunLengthEncoding 1219 / 1266 55.1 18.2 0.7X runDecodeBenchmark("SHORT Decode (Lower Skew)", iters, count, SHORT, testData) val g2 = genHigherSkewData() @@ -184,18 +166,7 @@ object CompressionSchemeBenchmark extends AllCompressionSchemes { testData.putShort(i * SHORT.defaultSize, g2().toShort) } - // Intel(R) Core(TM) i7-4578U CPU @ 3.00GHz - // SHORT Encode (Higher Skew): Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative - // ------------------------------------------------------------------------------------------- - // PassThrough(1.000) 7 / 7 10112.4 0.1 1.0X - // RunLengthEncoding(2.009) 1623 / 1661 41.4 24.2 0.0X runEncodeBenchmark("SHORT Encode (Higher Skew)", iters, count, SHORT, testData) - - // Intel(R) Core(TM) i7-4578U CPU @ 3.00GHz - // SHORT Decode (Higher Skew): Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative - // ------------------------------------------------------------------------------------------- - // PassThrough 818 / 827 82.0 12.2 1.0X - // RunLengthEncoding 1202 / 1237 55.8 17.9 0.7X runDecodeBenchmark("SHORT Decode (Higher Skew)", iters, count, SHORT, testData) } @@ -208,22 +179,7 @@ object CompressionSchemeBenchmark extends AllCompressionSchemes { testData.putInt(i * INT.defaultSize, g1().toInt) } - // Intel(R) Core(TM) i7-4578U CPU @ 3.00GHz - // INT Encode (Lower Skew): Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative - // ------------------------------------------------------------------------------------------- - // PassThrough(1.000) 18 / 19 3716.4 0.3 1.0X - // RunLengthEncoding(1.001) 1992 / 2056 33.7 29.7 0.0X - // DictionaryEncoding(0.500) 723 / 739 92.8 10.8 0.0X - // IntDelta(0.250) 368 / 377 182.2 5.5 0.0X runEncodeBenchmark("INT Encode (Lower Skew)", iters, count, INT, testData) - - // Intel(R) Core(TM) i7-4578U CPU @ 3.00GHz - // INT Decode (Lower Skew): Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative - // ------------------------------------------------------------------------------------------- - // PassThrough 821 / 845 81.8 12.2 1.0X - // RunLengthEncoding 1246 / 1256 53.9 18.6 0.7X - // DictionaryEncoding 757 / 766 88.6 11.3 1.1X - // IntDelta 680 / 689 98.7 10.1 1.2X runDecodeBenchmark("INT Decode (Lower Skew)", iters, count, INT, testData) val g2 = genHigherSkewData() @@ -231,22 +187,7 @@ object CompressionSchemeBenchmark extends AllCompressionSchemes { testData.putInt(i * INT.defaultSize, g2().toInt) } - // Intel(R) Core(TM) i7-4578U CPU @ 3.00GHz - // INT Encode (Higher Skew): Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative - // ------------------------------------------------------------------------------------------- - // PassThrough(1.000) 17 / 19 3888.4 0.3 1.0X - // RunLengthEncoding(1.339) 2127 / 2148 31.5 31.7 0.0X - // DictionaryEncoding(0.501) 960 / 972 69.9 14.3 0.0X - // IntDelta(0.250) 362 / 366 185.5 5.4 0.0X runEncodeBenchmark("INT Encode (Higher Skew)", iters, count, INT, testData) - - // Intel(R) Core(TM) i7-4578U CPU @ 3.00GHz - // INT Decode (Higher Skew): Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative - // ------------------------------------------------------------------------------------------- - // PassThrough 838 / 884 80.1 12.5 1.0X - // RunLengthEncoding 1287 / 1311 52.1 19.2 0.7X - // DictionaryEncoding 844 / 859 79.5 12.6 1.0X - // IntDelta 764 / 784 87.8 11.4 1.1X runDecodeBenchmark("INT Decode (Higher Skew)", iters, count, INT, testData) } @@ -259,22 +200,7 @@ object CompressionSchemeBenchmark extends AllCompressionSchemes { testData.putLong(i * LONG.defaultSize, g1().toLong) } - // Intel(R) Core(TM) i7-4578U CPU @ 3.00GHz - // LONG Encode (Lower Skew): Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative - // ------------------------------------------------------------------------------------------- - // PassThrough(1.000) 37 / 38 1804.8 0.6 1.0X - // RunLengthEncoding(0.748) 2065 / 2094 32.5 30.8 0.0X - // DictionaryEncoding(0.250) 950 / 962 70.6 14.2 0.0X - // LongDelta(0.125) 475 / 482 141.2 7.1 0.1X runEncodeBenchmark("LONG Encode (Lower Skew)", iters, count, LONG, testData) - - // Intel(R) Core(TM) i7-4578U CPU @ 3.00GHz - // LONG Decode (Lower Skew): Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative - // ------------------------------------------------------------------------------------------- - // PassThrough 888 / 894 75.5 13.2 1.0X - // RunLengthEncoding 1301 / 1311 51.6 19.4 0.7X - // DictionaryEncoding 887 / 904 75.7 13.2 1.0X - // LongDelta 693 / 735 96.8 10.3 1.3X runDecodeBenchmark("LONG Decode (Lower Skew)", iters, count, LONG, testData) val g2 = genHigherSkewData() @@ -282,22 +208,7 @@ object CompressionSchemeBenchmark extends AllCompressionSchemes { testData.putLong(i * LONG.defaultSize, g2().toLong) } - // Intel(R) Core(TM) i7-4578U CPU @ 3.00GHz - // LONG Encode (Higher Skew): Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative - // ------------------------------------------------------------------------------------------- - // PassThrough(1.000) 34 / 35 1963.9 0.5 1.0X - // RunLengthEncoding(0.999) 2260 / 3021 29.7 33.7 0.0X - // DictionaryEncoding(0.251) 1270 / 1438 52.8 18.9 0.0X - // LongDelta(0.125) 496 / 509 135.3 7.4 0.1X runEncodeBenchmark("LONG Encode (Higher Skew)", iters, count, LONG, testData) - - // Intel(R) Core(TM) i7-4578U CPU @ 3.00GHz - // LONG Decode (Higher Skew): Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative - // ------------------------------------------------------------------------------------------- - // PassThrough 965 / 1494 69.5 14.4 1.0X - // RunLengthEncoding 1350 / 1378 49.7 20.1 0.7X - // DictionaryEncoding 892 / 924 75.2 13.3 1.1X - // LongDelta 817 / 847 82.2 12.2 1.2X runDecodeBenchmark("LONG Decode (Higher Skew)", iters, count, LONG, testData) } @@ -318,28 +229,17 @@ object CompressionSchemeBenchmark extends AllCompressionSchemes { } testData.rewind() - // Intel(R) Core(TM) i7-4578U CPU @ 3.00GHz - // STRING Encode: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative - // ------------------------------------------------------------------------------------------- - // PassThrough(1.000) 56 / 57 1197.9 0.8 1.0X - // RunLengthEncoding(0.893) 4892 / 4937 13.7 72.9 0.0X - // DictionaryEncoding(0.167) 2968 / 2992 22.6 44.2 0.0X runEncodeBenchmark("STRING Encode", iters, count, STRING, testData) - - // Intel(R) Core(TM) i7-4578U CPU @ 3.00GHz - // STRING Decode: Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative - // ------------------------------------------------------------------------------------------- - // PassThrough 2422 / 2449 27.7 36.1 1.0X - // RunLengthEncoding 2885 / 3018 23.3 43.0 0.8X - // DictionaryEncoding 2716 / 2752 24.7 40.5 0.9X runDecodeBenchmark("STRING Decode", iters, count, STRING, testData) } - def main(args: Array[String]): Unit = { - bitEncodingBenchmark(1024) - shortEncodingBenchmark(1024) - intEncodingBenchmark(1024) - longEncodingBenchmark(1024) - stringEncodingBenchmark(1024) + override def benchmark(): Unit = { + runBenchmark("Compression Scheme Benchmark") { + bitEncodingBenchmark(1024) + shortEncodingBenchmark(1024) + intEncodingBenchmark(1024) + longEncodingBenchmark(1024) + stringEncodingBenchmark(1024) + } } } --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
