Comparing Arrays.append
with appending a value to a list.
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 % |
---|---|---|---|---|---|
[val | list] (list, backwards) | 21.32 M | 46.89 ns | ±2177.93% | 28 ns | 59 ns |
Arrays.append/2 (ErlangArray) | 4.32 M | 231.49 ns | ±524.57% | 156 ns | 539.28 ns |
list ++ [val] (list) | 2.57 M | 388.77 ns | ±890.46% | 121 ns | 2486.72 ns |
Arrays.append/2 (MapArray) | 0.39 M | 2549.69 ns | ±124.16% | 2097 ns | 20352.01 ns |
Comparison
Name | IPS | Slower |
---|---|---|
[val | list] (list, backwards) | 21.32 M | |
Arrays.append/2 (ErlangArray) | 4.32 M | 4.94x |
list ++ [val] (list) | 2.57 M | 8.29x |
Arrays.append/2 (MapArray) | 0.39 M | 54.37x |
Memory Usage
Name | Memory | Factor |
---|---|---|
[val | list] (list, backwards) | 16 B | |
Arrays.append/2 (ErlangArray) | 272 B | 17.0x |
list ++ [val] (list) | 528 B | 33.0x |
Arrays.append/2 (MapArray) | 920 B | 57.5x |
Input: 0000000064 elements
Run Time
Name | IPS | Average | Devitation | Median | 99th % |
---|---|---|---|---|---|
[val | list] (list, backwards) | 16.67 M | 59.99 ns | ±1970.57% | 30 ns | 62.23 ns |
Arrays.append/2 (MapArray) | 4.92 M | 203.20 ns | ±510.08% | 152 ns | 358.48 ns |
Arrays.append/2 (ErlangArray) | 3.81 M | 262.58 ns | ±635.53% | 159 ns | 533 ns |
list ++ [val] (list) | 1.97 M | 507.73 ns | ±513.43% | 212 ns | 11559 ns |
Comparison
Name | IPS | Slower |
---|---|---|
[val | list] (list, backwards) | 16.67 M | |
Arrays.append/2 (MapArray) | 4.92 M | 3.39x |
Arrays.append/2 (ErlangArray) | 3.81 M | 4.38x |
list ++ [val] (list) | 1.97 M | 8.46x |
Memory Usage
Name | Memory | Factor |
---|---|---|
[val | list] (list, backwards) | 16 B | |
Arrays.append/2 (MapArray) | 224 B | 14.0x |
Arrays.append/2 (ErlangArray) | 272 B | 17.0x |
list ++ [val] (list) | 448 B | 28.0x |
Input: 0000000128 elements
Run Time
Name | IPS | Average | Devitation | Median | 99th % |
---|---|---|---|---|---|
[val | list] (list, backwards) | 24.04 M | 41.60 ns | ±1100.58% | 33 ns | 60 ns |
Arrays.append/2 (MapArray) | 3.48 M | 287.64 ns | ±466.71% | 188 ns | 2448.04 ns |
Arrays.append/2 (ErlangArray) | 3.45 M | 289.94 ns | ±384.17% | 202 ns | 1712.38 ns |
list ++ [val] (list) | 1.10 M | 913.17 ns | ±387.56% | 390 ns | 18202.90 ns |
Comparison
Name | IPS | Slower |
---|---|---|
[val | list] (list, backwards) | 24.04 M | |
Arrays.append/2 (MapArray) | 3.48 M | 6.92x |
Arrays.append/2 (ErlangArray) | 3.45 M | 6.97x |
list ++ [val] (list) | 1.10 M | 21.95x |
Memory Usage
Name | Memory | Factor |
---|---|---|
[val | list] (list, backwards) | 16 B | |
Arrays.append/2 (MapArray) | 264 B | 16.5x |
Arrays.append/2 (ErlangArray) | 368 B | 23.0x |
list ++ [val] (list) | 560 B | 35.0x |
Input: 0000000256 elements
Run Time
Name | IPS | Average | Devitation | Median | 99th % |
---|---|---|---|---|---|
[val | list] (list, backwards) | 20.30 M | 49.27 ns | ±896.50% | 36 ns | 75 ns |
Arrays.append/2 (ErlangArray) | 4.24 M | 235.81 ns | ±99.23% | 221 ns | 371 ns |
Arrays.append/2 (MapArray) | 3.85 M | 259.68 ns | ±154.75% | 238 ns | 414.63 ns |
list ++ [val] (list) | 0.58 M | 1719.10 ns | ±260.28% | 750 ns | 26337.80 ns |
Comparison
Name | IPS | Slower |
---|---|---|
[val | list] (list, backwards) | 20.30 M | |
Arrays.append/2 (ErlangArray) | 4.24 M | 4.79x |
Arrays.append/2 (MapArray) | 3.85 M | 5.27x |
list ++ [val] (list) | 0.58 M | 34.89x |
Memory Usage
Name | Memory | Factor |
---|---|---|
[val | list] (list, backwards) | 16 B | |
Arrays.append/2 (ErlangArray) | 368 B | 23.0x |
Arrays.append/2 (MapArray) | 328 B | 20.5x |
list ++ [val] (list) | 384 B | 24.0x |
Input: 0000000512 elements
Run Time
Name | IPS | Average | Devitation | Median | 99th % |
---|---|---|---|---|---|
[val | list] (list, backwards) | 18.15 M | 55.09 ns | ±47.12% | 52 ns | 119.65 ns |
Arrays.append/2 (ErlangArray) | 3.34 M | 299.61 ns | ±139.81% | 232 ns | 1798.75 ns |
Arrays.append/2 (MapArray) | 3.16 M | 316.92 ns | ±314.91% | 243 ns | 482.32 ns |
list ++ [val] (list) | 0.48 M | 2093.93 ns | ±98.60% | 1475 ns | 8188.70 ns |
Comparison
Name | IPS | Slower |
---|---|---|
[val | list] (list, backwards) | 18.15 M | |
Arrays.append/2 (ErlangArray) | 3.34 M | 5.44x |
Arrays.append/2 (MapArray) | 3.16 M | 5.75x |
list ++ [val] (list) | 0.48 M | 38.01x |
Memory Usage
Name | Memory | Factor |
---|---|---|
[val | list] (list, backwards) | 16 B | |
Arrays.append/2 (ErlangArray) | 368 B | 23.0x |
Arrays.append/2 (MapArray) | 336 B | 21.0x |
list ++ [val] (list) | 4192 B | 262.0x |
Input: 0000001024 elements
Run Time
Name | IPS | Average | Devitation | Median | 99th % |
---|---|---|---|---|---|
[val | list] (list, backwards) | 10.03 M | 0.0997 μs | ±761.66% | 0.0640 μs | 0.145 μs |
Arrays.append/2 (ErlangArray) | 2.80 M | 0.36 μs | ±86.66% | 0.29 μs | 1.94 μs |
Arrays.append/2 (MapArray) | 0.87 M | 1.14 μs | ±281.20% | 0.28 μs | 13.40 μs |
list ++ [val] (list) | 0.135 M | 7.43 μs | ±99.66% | 2.94 μs | 25.37 μs |
Comparison
Name | IPS | Slower |
---|---|---|
[val | list] (list, backwards) | 10.03 M | |
Arrays.append/2 (ErlangArray) | 2.80 M | 3.58x |
Arrays.append/2 (MapArray) | 0.87 M | 11.47x |
list ++ [val] (list) | 0.135 M | 74.53x |
Memory Usage
Name | Memory | Factor |
---|---|---|
[val | list] (list, backwards) | 16 B | |
Arrays.append/2 (ErlangArray) | 464 B | 29.0x |
Arrays.append/2 (MapArray) | 368 B | 23.0x |
list ++ [val] (list) | 3904 B | 244.0x |
Input: 0000002048 elements
Run Time
Name | IPS | Average | Devitation | Median | 99th % |
---|---|---|---|---|---|
[val | list] (list, backwards) | 12.99 M | 77.00 ns | ±36.37% | 73 ns | 177.69 ns |
Arrays.append/2 (MapArray) | 1.96 M | 510.58 ns | ±362.83% | 310 ns | 17121.99 ns |
Arrays.append/2 (ErlangArray) | 1.23 M | 812.43 ns | ±100.04% | 300 ns | 2353.08 ns |
list ++ [val] (list) | 0.0689 M | 14505.99 ns | ±80.03% | 5845.50 ns | 52322.43 ns |
Comparison
Name | IPS | Slower |
---|---|---|
[val | list] (list, backwards) | 12.99 M | |
Arrays.append/2 (MapArray) | 1.96 M | 6.63x |
Arrays.append/2 (ErlangArray) | 1.23 M | 10.55x |
list ++ [val] (list) | 0.0689 M | 188.39x |
Memory Usage
Name | Memory | Factor |
---|---|---|
[val | list] (list, backwards) | 16 B | |
Arrays.append/2 (MapArray) | 408 B | 25.5x |
Arrays.append/2 (ErlangArray) | 464 B | 29.0x |
list ++ [val] (list) | 320 B | 20.0x |
Input: 0000004096 elements
Run Time
Name | IPS | Average | Devitation | Median | 99th % |
---|---|---|---|---|---|
[val | list] (list, backwards) | 10.24 M | 0.0977 μs | ±72.55% | 0.0900 μs | 0.25 μs |
Arrays.append/2 (ErlangArray) | 2.35 M | 0.43 μs | ±125.30% | 0.32 μs | 3.13 μs |
Arrays.append/2 (MapArray) | 0.52 M | 1.91 μs | ±429.33% | 0.35 μs | 47.09 μs |
list ++ [val] (list) | 0.0325 M | 30.72 μs | ±56.26% | 24.34 μs | 67.70 μs |
Comparison
Name | IPS | Slower |
---|---|---|
[val | list] (list, backwards) | 10.24 M | |
Arrays.append/2 (ErlangArray) | 2.35 M | 4.36x |
Arrays.append/2 (MapArray) | 0.52 M | 19.56x |
list ++ [val] (list) | 0.0325 M | 314.49x |
Memory Usage
Name | Memory | Factor |
---|---|---|
[val | list] (list, backwards) | 16 B | |
Arrays.append/2 (ErlangArray) | 464 B | 29.0x |
Arrays.append/2 (MapArray) | 400 B | 25.0x |
list ++ [val] (list) | 21728 B | 1358.0x |
Input: 0000008192 elements
Run Time
Name | IPS | Average | Devitation | Median | 99th % |
---|---|---|---|---|---|
[val | list] (list, backwards) | 4.45 M | 224.78 ns | ±643.03% | 92 ns | 8033.40 ns |
Arrays.append/2 (ErlangArray) | 2.35 M | 425.46 ns | ±34.08% | 389.50 ns | 1499 ns |
Arrays.append/2 (MapArray) | 1.83 M | 545.23 ns | ±44.93% | 505 ns | 2565 ns |
list ++ [val] (list) | 0.0150 M | 66470.55 ns | ±66.03% | 26440 ns | 136688.72 ns |
Comparison
Name | IPS | Slower |
---|---|---|
[val | list] (list, backwards) | 4.45 M | |
Arrays.append/2 (ErlangArray) | 2.35 M | 1.89x |
Arrays.append/2 (MapArray) | 1.83 M | 2.43x |
list ++ [val] (list) | 0.0150 M | 295.72x |
Memory Usage
Name | Memory | Factor |
---|---|---|
[val | list] (list, backwards) | 16 B | |
Arrays.append/2 (ErlangArray) | 464 B | 29.0x |
Arrays.append/2 (MapArray) | 488 B | 30.5x |
list ++ [val] (list) | 10384 B | 649.0x |
Input: 0000016384 elements
Run Time
Name | IPS | Average | Devitation | Median | 99th % |
---|---|---|---|---|---|
[val | list] (list, backwards) | 2.63 M | 0.38 μs | ±38.89% | 0.33 μs | 0.88 μs |
Arrays.append/2 (ErlangArray) | 1.01 M | 0.99 μs | ±9.87% | 0.97 μs | 1.25 μs |
Arrays.append/2 (MapArray) | 0.88 M | 1.14 μs | ±13.17% | 1.11 μs | 1.54 μs |
list ++ [val] (list) | 0.00511 M | 195.55 μs | ±71.33% | 308.53 μs | 401.18 μs |
Comparison
Name | IPS | Slower |
---|---|---|
[val | list] (list, backwards) | 2.63 M | |
Arrays.append/2 (ErlangArray) | 1.01 M | 2.6x |
Arrays.append/2 (MapArray) | 0.88 M | 3.0x |
list ++ [val] (list) | 0.00511 M | 515.13x |
Memory Usage
Name | Memory | Factor |
---|---|---|
[val | list] (list, backwards) | 16 B | |
Arrays.append/2 (ErlangArray) | 560 B | 35.0x |
Arrays.append/2 (MapArray) | 520 B | 32.5x |
list ++ [val] (list) | 108832 B | 6802.0x |
Input: 0000032768 elements
Run Time
Name | IPS | Average | Devitation | Median | 99th % |
---|---|---|---|---|---|
[val | list] (list, backwards) | 1386.80 K | 0.72 μs | ±7.99% | 0.71 μs | 0.88 μs |
Arrays.append/2 (ErlangArray) | 897.14 K | 1.11 μs | ±5.77% | 1.11 μs | 1.28 μs |
Arrays.append/2 (MapArray) | 852.64 K | 1.17 μs | ±8.16% | 1.16 μs | 1.47 μs |
list ++ [val] (list) | 2.80 K | 357.64 μs | ±68.91% | 429.91 μs | 657.26 μs |
Comparison
Name | IPS | Slower |
---|---|---|
[val | list] (list, backwards) | 1386.80 K | |
Arrays.append/2 (ErlangArray) | 897.14 K | 1.55x |
Arrays.append/2 (MapArray) | 852.64 K | 1.63x |
list ++ [val] (list) | 2.80 K | 495.98x |
Memory Usage
Name | Memory | Factor |
---|---|---|
[val | list] (list, backwards) | 16 B | |
Arrays.append/2 (ErlangArray) | 560 B | 35.0x |
Arrays.append/2 (MapArray) | 552 B | 34.5x |
list ++ [val] (list) | 76224 B | 4764.0x |
Input: 0000065536 elements
Run Time
Name | IPS | Average | Devitation | Median | 99th % |
---|---|---|---|---|---|
[val | list] (list, backwards) | 1186.47 K | 0.84 μs | ±5.43% | 0.84 μs | 0.92 μs |
Arrays.append/2 (ErlangArray) | 796.73 K | 1.26 μs | ±4.86% | 1.26 μs | 1.34 μs |
Arrays.append/2 (MapArray) | 693.69 K | 1.44 μs | ±14.09% | 1.41 μs | 1.75 μs |
list ++ [val] (list) | 2.67 K | 374.78 μs | ±65.35% | 248.66 μs | 908.48 μs |
Comparison
Name | IPS | Slower |
---|---|---|
[val | list] (list, backwards) | 1186.47 K | |
Arrays.append/2 (ErlangArray) | 796.73 K | 1.49x |
Arrays.append/2 (MapArray) | 693.69 K | 1.71x |
list ++ [val] (list) | 2.67 K | 444.67x |
Memory Usage
Name | Memory | Factor |
---|---|---|
[val | list] (list, backwards) | 16 B | |
Arrays.append/2 (ErlangArray) | 560 B | 35.0x |
Arrays.append/2 (MapArray) | 592 B | 37.0x |
list ++ [val] (list) | 524224 B | 32764.0x |
Input: 0000131072 elements
Run Time
Name | IPS | Average | Devitation | Median | 99th % |
---|---|---|---|---|---|
[val | list] (list, backwards) | 1130.20 K | 0.88 μs | ±5.57% | 0.86 μs | 0.94 μs |
Arrays.append/2 (ErlangArray) | 758.01 K | 1.32 μs | ±3.85% | 1.31 μs | 1.38 μs |
Arrays.append/2 (MapArray) | 692.20 K | 1.44 μs | ±8.02% | 1.49 μs | 1.53 μs |
list ++ [val] (list) | 1.10 K | 912.10 μs | ±86.74% | 557.25 μs | 2326.99 μs |
Comparison
Name | IPS | Slower |
---|---|---|
[val | list] (list, backwards) | 1130.20 K | |
Arrays.append/2 (ErlangArray) | 758.01 K | 1.49x |
Arrays.append/2 (MapArray) | 692.20 K | 1.63x |
list ++ [val] (list) | 1.10 K | 1030.86x |
Memory Usage
Name | Memory | Factor |
---|---|---|
[val | list] (list, backwards) | 16 B | |
Arrays.append/2 (ErlangArray) | 656 B | 41.0x |
Arrays.append/2 (MapArray) | 648 B | 40.5x |
list ++ [val] (list) | 447952 B | 27997.0x |
Input: 0000262144 elements
Run Time
Name | IPS | Average | Devitation | Median | 99th % |
---|---|---|---|---|---|
Arrays.append/2 (ErlangArray) | 726.48 K | 1.38 μs | ±17.93% | 1.38 μs | 1.55 μs |
Arrays.append/2 (MapArray) | 696.86 K | 1.44 μs | ±6.60% | 1.44 μs | 1.50 μs |
[val | list] (list, backwards) | 652.53 K | 1.53 μs | ±59.20% | 1.53 μs | 2.17 μs |
list ++ [val] (list) | 0.32 K | 3100.37 μs | ±1.09% | 3100.37 μs | 3124.19 μs |
Comparison
Name | IPS | Slower |
---|---|---|
Arrays.append/2 (ErlangArray) | 726.48 K | |
Arrays.append/2 (MapArray) | 696.86 K | 1.04x |
[val | list] (list, backwards) | 652.53 K | 1.11x |
list ++ [val] (list) | 0.32 K | 2252.36x |
Memory Usage
Name | Memory | Factor |
---|---|---|
Arrays.append/2 (ErlangArray) | 656 B | |
Arrays.append/2 (MapArray) | 624 B | 0.95x |
[val | list] (list, backwards) | 16 B | 0.02x |
list ++ [val] (list) | 2469504 B | 3764.49x |
Input: 0000524288 elements
Run Time
Name | IPS | Average | Devitation | Median | 99th % |
---|---|---|---|---|---|
[val | list] (list, backwards) | 1243.78 K | 0.80 μs | ±0.00% | 0.80 μs | 0.80 μs |
Arrays.append/2 (ErlangArray) | 839.63 K | 1.19 μs | ±0.00% | 1.19 μs | 1.19 μs |
Arrays.append/2 (MapArray) | 514.93 K | 1.94 μs | ±0.00% | 1.94 μs | 1.94 μs |
list ++ [val] (list) | 0.44 K | 2289.99 μs | ±0.00% | 2289.99 μs | 2289.99 μs |
Comparison
Name | IPS | Slower |
---|---|---|
[val | list] (list, backwards) | 1243.78 K | |
Arrays.append/2 (ErlangArray) | 839.63 K | 1.48x |
Arrays.append/2 (MapArray) | 514.93 K | 2.42x |
list ++ [val] (list) | 0.44 K | 2848.25x |
Memory Usage
Name | Memory | Factor |
---|---|---|
[val | list] (list, backwards) | 16 B | |
Arrays.append/2 (ErlangArray) | 656 B | 41.0x |
Arrays.append/2 (MapArray) | 648 B | 40.5x |
list ++ [val] (list) | 1207456 B | 75466.0x |
Input: 0001048576 elements
Run Time
Name | IPS | Average | Devitation | Median | 99th % |
---|---|---|---|---|---|
[val | list] (list, backwards) | 1191.90 K | 0.84 μs | ±0.00% | 0.84 μs | 0.84 μs |
Arrays.append/2 (ErlangArray) | 730.46 K | 1.37 μs | ±0.00% | 1.37 μs | 1.37 μs |
Arrays.append/2 (MapArray) | 462.53 K | 2.16 μs | ±0.00% | 2.16 μs | 2.16 μs |
list ++ [val] (list) | 0.196 K | 5111.34 μs | ±0.00% | 5111.34 μs | 5111.34 μs |
Comparison
Name | IPS | Slower |
---|---|---|
[val | list] (list, backwards) | 1191.90 K | |
Arrays.append/2 (ErlangArray) | 730.46 K | 1.63x |
Arrays.append/2 (MapArray) | 462.53 K | 2.58x |
list ++ [val] (list) | 0.196 K | 6092.18x |
Memory Usage
Name | Memory | Factor |
---|---|---|
[val | list] (list, backwards) | 16 B | |
Arrays.append/2 (ErlangArray) | 752 B | 47.0x |
Arrays.append/2 (MapArray) | 704 B | 44.0x |
list ++ [val] (list) | 3121584 B | 195099.0x |