Skip to content

Latest commit

 

History

History
1734 lines (1353 loc) · 48.6 KB

concat.md

File metadata and controls

1734 lines (1353 loc) · 48.6 KB

Benchmark

Comparing Arrays.concat with Kernel.++, by concatenating two collections of the same size.

System

Benchmark suite executing on the following system:

Operating System Linux
CPU Information Intel(R) Core(TM) i7-6700HQ CPU @ 2.60GHz
Number of Available Cores 8
Available Memory 7.60 GB
Elixir Version 1.12.2
Erlang Version 24.0.1

Configuration

Benchmark suite executing with the following configuration:

:time 500 ms
:parallel 1
:warmup 500 ms

Statistics

Input: 0000000032 elements

Run Time

Name IPS Average Devitation Median 99th %
Kernel.++/2 (list) 3538.16 K 0.28 μs ±834.91% 0.114 μs 1.19 μs
Arrays.concat/2 (ErlangArray) 103.92 K 9.62 μs ±76.54% 7.11 μs 34.69 μs
Arrays.concat/2 (MapArray) 72.80 K 13.74 μs ±56.69% 10.46 μs 38.14 μs

Comparison

Name IPS Slower
Kernel.++/2 (list) 3538.16 K  
Arrays.concat/2 (ErlangArray) 103.92 K 34.05x
Arrays.concat/2 (MapArray) 72.80 K 48.6x

Memory Usage

Name Memory Factor
Kernel.++/2 (list) 0.47 KB  
Arrays.concat/2 (ErlangArray) 10.21 KB 21.78x
Arrays.concat/2 (MapArray) 10.09 KB 21.53x

Input: 0000000064 elements

Run Time

Name IPS Average Devitation Median 99th %
Kernel.++/2 (list) 2140.77 K 0.47 μs ±505.86% 0.199 μs 16.00 μs
Arrays.concat/2 (ErlangArray) 52.16 K 19.17 μs ±31.21% 17.34 μs 39.04 μs
Arrays.concat/2 (MapArray) 49.46 K 20.22 μs ±26.77% 19.38 μs 40.40 μs

Comparison

Name IPS Slower
Kernel.++/2 (list) 2140.77 K  
Arrays.concat/2 (ErlangArray) 52.16 K 41.04x
Arrays.concat/2 (MapArray) 49.46 K 43.28x

Memory Usage

Name Memory Factor
Kernel.++/2 (list) 0.58 KB  
Arrays.concat/2 (ErlangArray) 23.49 KB 40.64x
Arrays.concat/2 (MapArray) 18.52 KB 32.03x

Input: 0000000128 elements

Run Time

Name IPS Average Devitation Median 99th %
Kernel.++/2 (list) 974.75 K 1.03 μs ±338.59% 0.38 μs 25.11 μs
Arrays.concat/2 (ErlangArray) 23.73 K 42.14 μs ±20.82% 40.28 μs 91.14 μs
Arrays.concat/2 (MapArray) 22.72 K 44.01 μs ±16.94% 43.68 μs 70.68 μs

Comparison

Name IPS Slower
Kernel.++/2 (list) 974.75 K  
Arrays.concat/2 (ErlangArray) 23.73 K 41.07x
Arrays.concat/2 (MapArray) 22.72 K 42.9x

Memory Usage

Name Memory Factor
Kernel.++/2 (list) 0.41 KB  
Arrays.concat/2 (ErlangArray) 53.13 KB 130.79x
Arrays.concat/2 (MapArray) 41.41 KB 101.94x

Input: 0000000256 elements

Run Time

Name IPS Average Devitation Median 99th %
Kernel.++/2 (list) 717.36 K 1.39 μs ±160.94% 0.72 μs 9.02 μs
Arrays.concat/2 (ErlangArray) 12.36 K 80.93 μs ±10.62% 79.79 μs 121.43 μs
Arrays.concat/2 (MapArray) 9.45 K 105.78 μs ±12.01% 104.08 μs 161.79 μs

Comparison

Name IPS Slower
Kernel.++/2 (list) 717.36 K  
Arrays.concat/2 (ErlangArray) 12.36 K 58.06x
Arrays.concat/2 (MapArray) 9.45 K 75.88x

Memory Usage

Name Memory Factor
Kernel.++/2 (list) 4 KB  
Arrays.concat/2 (ErlangArray) 106.27 KB 26.57x
Arrays.concat/2 (MapArray) 94.52 KB 23.63x

Input: 0000000512 elements

Run Time

Name IPS Average Devitation Median 99th %
Kernel.++/2 (list) 281.93 K 3.55 μs ±105.21% 1.48 μs 16.46 μs
Arrays.concat/2 (ErlangArray) 6.20 K 161.38 μs ±11.88% 157.32 μs 239.87 μs
Arrays.concat/2 (MapArray) 4.10 K 243.65 μs ±11.09% 240.78 μs 344.40 μs

Comparison

Name IPS Slower
Kernel.++/2 (list) 281.93 K  
Arrays.concat/2 (ErlangArray) 6.20 K 45.5x
Arrays.concat/2 (MapArray) 4.10 K 68.69x

Memory Usage

Name Memory Factor
Kernel.++/2 (list) 3.84 KB  
Arrays.concat/2 (ErlangArray) 214.63 KB 55.84x
Arrays.concat/2 (MapArray) 206.27 KB 53.66x

Input: 0000001024 elements

Run Time

Name IPS Average Devitation Median 99th %
Kernel.++/2 (list) 117.41 K 8.52 μs ±94.58% 3.37 μs 40.38 μs
Arrays.concat/2 (ErlangArray) 2.71 K 369.37 μs ±5.48% 365.51 μs 477.34 μs
Arrays.concat/2 (MapArray) 2.07 K 483.67 μs ±8.17% 469.46 μs 638.10 μs

Comparison

Name IPS Slower
Kernel.++/2 (list) 117.41 K  
Arrays.concat/2 (ErlangArray) 2.71 K 43.37x
Arrays.concat/2 (MapArray) 2.07 K 56.79x

Memory Usage

Name Memory Factor
Kernel.++/2 (list) 0.34 KB  
Arrays.concat/2 (ErlangArray) 520.64 KB 1514.59x
Arrays.concat/2 (MapArray) 440.95 KB 1282.75x

Input: 0000002048 elements

Run Time

Name IPS Average Devitation Median 99th %
Kernel.++/2 (list) 64.29 K 15.56 μs ±68.96% 6.63 μs 31.45 μs
Arrays.concat/2 (ErlangArray) 1.35 K 742.25 μs ±7.11% 727.16 μs 1041.76 μs
Arrays.concat/2 (MapArray) 0.99 K 1014.37 μs ±11.78% 1008 μs 1472.94 μs

Comparison

Name IPS Slower
Kernel.++/2 (list) 64.29 K  
Arrays.concat/2 (ErlangArray) 1.35 K 47.72x
Arrays.concat/2 (MapArray) 0.99 K 65.21x

Memory Usage

Name Memory Factor
Kernel.++/2 (list) 21.25 KB  
Arrays.concat/2 (ErlangArray) 1040.95 KB 48.99x
Arrays.concat/2 (MapArray) 943.59 KB 44.4x

Input: 0000004096 elements

Run Time

Name IPS Average Devitation Median 99th %
Kernel.++/2 (list) 34535.22 0.0290 ms ±78.74% 0.0118 ms 0.0833 ms
Arrays.concat/2 (ErlangArray) 701.06 1.43 ms ±3.86% 1.40 ms 1.72 ms
Arrays.concat/2 (MapArray) 484.79 2.06 ms ±4.70% 2.06 ms 2.37 ms

Comparison

Name IPS Slower
Kernel.++/2 (list) 34535.22  
Arrays.concat/2 (ErlangArray) 701.06 49.26x
Arrays.concat/2 (MapArray) 484.79 71.24x

Memory Usage

Name Memory Factor
Kernel.++/2 (list) 0.00993 MB  
Arrays.concat/2 (ErlangArray) 2.03 MB 204.81x
Arrays.concat/2 (MapArray) 2.00 MB 200.92x

Input: 0000008192 elements

Run Time

Name IPS Average Devitation Median 99th %
Kernel.++/2 (list) 19872.77 0.0503 ms ±77.21% 0.0271 ms 0.133 ms
Arrays.concat/2 (ErlangArray) 305.42 3.27 ms ±7.82% 3.18 ms 3.97 ms
Arrays.concat/2 (MapArray) 221.96 4.51 ms ±6.04% 4.47 ms 5.51 ms

Comparison

Name IPS Slower
Kernel.++/2 (list) 19872.77  
Arrays.concat/2 (ErlangArray) 305.42 65.07x
Arrays.concat/2 (MapArray) 221.96 89.53x

Memory Usage

Name Memory Factor
Kernel.++/2 (list) 0.104 MB  
Arrays.concat/2 (ErlangArray) 4.66 MB 44.88x
Arrays.concat/2 (MapArray) 4.28 MB 41.25x

Input: 0000016384 elements

Run Time

Name IPS Average Devitation Median 99th %
Kernel.++/2 (list) 9991.16 0.100 ms ±91.13% 0.0693 ms 0.35 ms
Arrays.concat/2 (ErlangArray) 148.87 6.72 ms ±3.93% 6.65 ms 7.63 ms
Arrays.concat/2 (MapArray) 109.36 9.14 ms ±3.71% 9.02 ms 9.78 ms

Comparison

Name IPS Slower
Kernel.++/2 (list) 9991.16  
Arrays.concat/2 (ErlangArray) 148.87 67.11x
Arrays.concat/2 (MapArray) 109.36 91.36x

Memory Usage

Name Memory Factor
Kernel.++/2 (list) 0.0727 MB  
Arrays.concat/2 (ErlangArray) 9.64 MB 132.63x
Arrays.concat/2 (MapArray) 9.06 MB 124.62x

Input: 0000032768 elements

Run Time

Name IPS Average Devitation Median 99th %
Kernel.++/2 (list) 4177.79 0.24 ms ±74.84% 0.147 ms 0.57 ms
Arrays.concat/2 (ErlangArray) 65.75 15.21 ms ±2.51% 15.04 ms 16.11 ms
Arrays.concat/2 (MapArray) 39.60 25.26 ms ±4.28% 24.89 ms 27.33 ms

Comparison

Name IPS Slower
Kernel.++/2 (list) 4177.79  
Arrays.concat/2 (ErlangArray) 65.75 63.54x
Arrays.concat/2 (MapArray) 39.60 105.51x

Memory Usage

Name Memory Factor
Kernel.++/2 (list) 0.50 MB  
Arrays.concat/2 (ErlangArray) 19.30 MB 38.61x
Arrays.concat/2 (MapArray) 19.13 MB 38.27x

Input: 0000065536 elements

Run Time

Name IPS Average Devitation Median 99th %
Kernel.++/2 (list) 952.20 1.05 ms ±49.39% 1.17 ms 1.87 ms
Arrays.concat/2 (ErlangArray) 31.97 31.28 ms ±3.05% 31.04 ms 32.52 ms
Arrays.concat/2 (MapArray) 12.72 78.61 ms ±1.70% 78.76 ms 79.87 ms

Comparison

Name IPS Slower
Kernel.++/2 (list) 952.20  
Arrays.concat/2 (ErlangArray) 31.97 29.79x
Arrays.concat/2 (MapArray) 12.72 74.85x

Memory Usage

Name Memory Factor
Kernel.++/2 (list) 0.43 MB  
Arrays.concat/2 (ErlangArray) 41.45 MB 97.03x
Arrays.concat/2 (MapArray) 40.79 MB 95.47x

Input: 0000131072 elements

Run Time

Name IPS Average Devitation Median 99th %
Kernel.++/2 (list) 873.63 1.14 ms ±87.43% 0.57 ms 2.30 ms
Arrays.concat/2 (ErlangArray) 15.24 65.62 ms ±1.14% 65.62 ms 66.15 ms
Arrays.concat/2 (MapArray) 5.35 186.80 ms ±0.00% 186.80 ms 186.80 ms

Comparison

Name IPS Slower
Kernel.++/2 (list) 873.63  
Arrays.concat/2 (ErlangArray) 15.24 57.32x
Arrays.concat/2 (MapArray) 5.35 163.2x

Memory Usage

Name Memory Factor
Kernel.++/2 (list) 2 MB  
Arrays.concat/2 (ErlangArray) 89.23 MB 44.61x
Arrays.concat/2 (MapArray) 86.03 MB 43.02x

Input: 0000262144 elements

Run Time

Name IPS Average Devitation Median 99th %
Kernel.++/2 (list) 569.88 1.75 ms ±11.95% 1.75 ms 1.90 ms
Arrays.concat/2 (ErlangArray) 7.81 128.04 ms ±0.00% 128.04 ms 128.04 ms
Arrays.concat/2 (MapArray) 2.52 397.05 ms ±0.00% 397.05 ms 397.05 ms

Comparison

Name IPS Slower
Kernel.++/2 (list) 569.88  
Arrays.concat/2 (ErlangArray) 7.81 72.97x
Arrays.concat/2 (MapArray) 2.52 226.27x

Memory Usage

Name Memory Factor
Kernel.++/2 (list) 1.15 MB  
Arrays.concat/2 (ErlangArray) 178.46 MB 154.97x
Arrays.concat/2 (MapArray) 179.20 MB 155.61x

Input: 0000524288 elements

Run Time

Name IPS Average Devitation Median 99th %
Kernel.++/2 (list) 450.60 2.22 ms ±0.00% 2.22 ms 2.22 ms
Arrays.concat/2 (ErlangArray) 3.83 261.31 ms ±0.00% 261.31 ms 261.31 ms
Arrays.concat/2 (MapArray) 1.08 926.34 ms ±0.00% 926.34 ms 926.34 ms

Comparison

Name IPS Slower
Kernel.++/2 (list) 450.60  
Arrays.concat/2 (ErlangArray) 3.83 117.74x
Arrays.concat/2 (MapArray) 1.08 417.41x

Memory Usage

Name Memory Factor
Kernel.++/2 (list) 2.98 MB  
Arrays.concat/2 (ErlangArray) 361.37 MB 121.39x
Arrays.concat/2 (MapArray) 374.79 MB 125.9x

Input: 0001048576 elements

Run Time

Name IPS Average Devitation Median 99th %
Kernel.++/2 (list) 237.11 4.22 ms ±0.00% 4.22 ms 4.22 ms
Arrays.concat/2 (ErlangArray) 1.43 698.55 ms ±0.00% 698.55 ms 698.55 ms
Arrays.concat/2 (MapArray) 0.47 2120.32 ms ±0.00% 2120.32 ms 2120.32 ms

Comparison

Name IPS Slower
Kernel.++/2 (list) 237.11  
Arrays.concat/2 (ErlangArray) 1.43 165.63x
Arrays.concat/2 (MapArray) 0.47 502.75x

Memory Usage

Name Memory Factor
Kernel.++/2 (list) 0.79 MB  
Arrays.concat/2 (ErlangArray) 809.86 MB 1021.91x
Arrays.concat/2 (MapArray) 789.24 MB 995.89x