Comparing Arrays.concat
with Kernel.++
,
by concatenating two collections of the same size.
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 |
Benchmark suite executing with the following configuration:
:time | 500 ms |
---|---|
:parallel | 1 |
:warmup | 500 ms |
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 |