Skip to content

Latest commit

 

History

History
2069 lines (1640 loc) · 61.3 KB

append.md

File metadata and controls

2069 lines (1640 loc) · 61.3 KB

Benchmark

Comparing Arrays.append with appending a value to a list.

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 %
[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