spark-instrumented-optimizer/sql/core/benchmarks/IntervalBenchmark-jdk11-results.txt
Max Gekk 8c44d74463 [SPARK-32071][SQL][TESTS] Add make_interval benchmark
### What changes were proposed in this pull request?
Add benchmarks for interval constructor `make_interval` and measure perf of 4 cases:
1. Constant (year, month)
2. Constant (week, day)
3. Constant (hour, minute, second, second fraction)
4. All fields are NOT constant.

The benchmark results are generated in the environment:

| Item | Description |
| ---- | ----|
| Region | us-west-2 (Oregon) |
| Instance | r3.xlarge |
| AMI | ubuntu/images/hvm-ssd/ubuntu-bionic-18.04-amd64-server-20190722.1 (ami-06f2f779464715dc5) |
| Java | OpenJDK 64-Bit Server VM 1.8.0_252 and OpenJDK 64-Bit Server VM 11.0.7+10 |

### Why are the changes needed?
To have a base line for future perf improvements of `make_interval`, and to prevent perf regressions in the future.

### Does this PR introduce _any_ user-facing change?
No

### How was this patch tested?
By running `IntervalBenchmark` via:
```
$ SPARK_GENERATE_BENCHMARK_FILES=1 build/sbt "sql/test:runMain org.apache.spark.sql.execution.benchmark.IntervalBenchmark"
```

Closes #28905 from MaxGekk/benchmark-make_interval.

Authored-by: Max Gekk <max.gekk@gmail.com>
Signed-off-by: Dongjoon Hyun <dongjoon@apache.org>
2020-06-27 17:54:06 -07:00

41 lines
4.3 KiB
Plaintext

OpenJDK 64-Bit Server VM 11.0.7+10-post-Ubuntu-2ubuntu218.04 on Linux 4.15.0-1063-aws
Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
cast strings to intervals: Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative
------------------------------------------------------------------------------------------------------------------------
prepare string w/ interval 708 829 110 1.4 708.0 1.0X
prepare string w/o interval 660 672 14 1.5 660.3 1.1X
1 units w/ interval 514 543 33 1.9 514.2 1.4X
1 units w/o interval 476 492 20 2.1 475.9 1.5X
2 units w/ interval 751 767 14 1.3 751.0 0.9X
2 units w/o interval 709 716 11 1.4 709.0 1.0X
3 units w/ interval 1541 1551 15 0.6 1540.9 0.5X
3 units w/o interval 1531 1532 1 0.7 1531.5 0.5X
4 units w/ interval 1764 1768 5 0.6 1763.5 0.4X
4 units w/o interval 1737 1745 8 0.6 1736.6 0.4X
5 units w/ interval 1920 1930 10 0.5 1919.7 0.4X
5 units w/o interval 1928 1936 11 0.5 1927.9 0.4X
6 units w/ interval 2124 2127 4 0.5 2124.2 0.3X
6 units w/o interval 2124 2125 1 0.5 2123.7 0.3X
7 units w/ interval 2525 2541 15 0.4 2525.5 0.3X
7 units w/o interval 2512 2518 11 0.4 2511.5 0.3X
8 units w/ interval 2578 2597 19 0.4 2578.1 0.3X
8 units w/o interval 2558 2562 6 0.4 2558.1 0.3X
9 units w/ interval 2742 2750 9 0.4 2741.8 0.3X
9 units w/o interval 2752 2762 11 0.4 2751.8 0.3X
10 units w/ interval 3112 3123 10 0.3 3111.9 0.2X
10 units w/o interval 3116 3130 14 0.3 3115.7 0.2X
11 units w/ interval 3255 3273 20 0.3 3255.3 0.2X
11 units w/o interval 3294 3305 14 0.3 3293.6 0.2X
OpenJDK 64-Bit Server VM 11.0.7+10-post-Ubuntu-2ubuntu218.04 on Linux 4.15.0-1063-aws
Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
make_interval(): Best Time(ms) Avg Time(ms) Stdev(ms) Rate(M/s) Per Row(ns) Relative
--------------------------------------------------------------------------------------------------------------------------
prepare make_interval() 3395 3410 16 0.3 3395.0 1.0X
make_interval(0, 1, 2, 3, 4, 5, 50.123456) 94 102 9 10.7 93.8 36.2X
make_interval(*, *, 2, 3, 4, 5, 50.123456) 136 139 4 7.3 136.5 24.9X
make_interval(0, 1, *, *, 4, 5, 50.123456) 115 119 4 8.7 114.8 29.6X
make_interval(0, 1, 2, 3, *, *, *) 3359 3382 37 0.3 3358.7 1.0X
make_interval(*, *, *, *, *, *, *) 3382 3388 9 0.3 3382.3 1.0X