Warning: These results are preliminary - use with caution (they may e.g. be from different browser versions).Official results are published on my blog.
The benchmark was run on a MacBook Pro 15 (2,5 GHz i7, 16 GB RAM, OSX 10.13.1, Chrome 62.0.3202.94 (64-bit))
Keyed results
Keyed implementations create an association between the domain data and a dom element by assigning a 'key'. If data changes the dom element with that key will be updated. In consequence inserting or deleting an element in the data array causes a corresponding change to the dom.
Duration in milliseconds ± standard deviation (Slowdown = Duration / Fastest)
Name | vanillajs-keyed | solid-js-v0.0.8-keyed | surplus-v0.5.0-keyed | ivi-v0.13.0-keyed | inferno-v4.0.6-keyed | petit-dom-v0.0.12-keyed | attodom-v0.5.2-keyed | nervjs-v1.2.8-keyed | knockout-v3.4.2-ko-jsx-keyed | dio-v8.1.1-keyed | bobril-v8.0.1-keyed | domvm-v3.3.2-keyed | maik-h-v2.5.2-keyed | etch-v0.12.5-keyed | vidom-v0.9.8-keyed | angular-v6.0.0-optimized-keyed | preact-v8.2.6-keyed | hyperhtml-v2.4.0-keyed | elm-v0.18.0-keyed | plastiq-v1.33.0-keyed | vue-v2.5.3-keyed | marionette-v3.5.1-domapi-keyed | svelte-v1.58.5-keyed | datum-v0.10.0-keyed | binding.scala-v10.0.1-keyed | apprun-v1.8.3-keyed | redom-v3.10.1-keyed | angular-v6.0.0-no-zone-keyed | ractive-v0.10.1-keyed | marko-v4.5.6-keyed | react-v16.1.0-keyed | angular-v6.0.0-keyed | dojo2-rc-keyed | react-v16.1.0-redux-combiner-v0.4.1-keyed | ractive-v0.9.13-keyed | mithril-v1.1.1-keyed | react-v16.1.0-redux-v3.7.2-keyed | angular-light-v0.14.1-keyed | react-v16.1.0-easy-state-v5.0.0-keyed | maquette-v3.0.1-keyed | react-v16.1.0-mobX-v3.3.1-keyed | reagent-v0.8-keyed | angular-v1.6.3-keyed | aurelia-v1.2.0-keyed | lit-html-v0.10.0-keyed | nx-v1.0.0-beta.2.0.1-keyed | ember-v3.0.0-keyed | hyperapp-v1.2.0-keyed | glimmer-v0.9.1-keyed | marionette-v3.5.1-keyed | knockout-v3.4.1-keyed | miso-0.18.0.0-keyed | react-lite-v0.15.30-keyed | reflex-dom-v0.4-keyed | choo-v6.5.0-keyed | rx-domh-v0.0.2-rxjs-v5.3.0-keyed |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
create rows Duration for creating 1000 rows after the page loaded. | 128.35.5 (1.0) | 134.84.4 (1.1) | 141.55.7 (1.1) | 136.65.4 (1.1) | 140.47.3 (1.1) | 144.66.2 (1.1) | 133.65.1 (1.0) | 148.47.4 (1.2) | 165.08.7 (1.3) | 154.77.5 (1.2) | 147.96.7 (1.2) | 161.89.0 (1.3) | 166.810.8 (1.3) | 152.06.0 (1.2) | 152.56.3 (1.2) | 165.57.3 (1.3) | 169.310.7 (1.3) | 171.511.1 (1.3) | 172.311.4 (1.3) | 172.97.5 (1.3) | 167.28.3 (1.3) | 222.610.2 (1.7) | 217.27.2 (1.7) | 206.618.5 (1.6) | 275.115.9 (2.1) | 148.08.0 (1.2) | 161.28.9 (1.3) | 162.69.4 (1.3) | 254.712.2 (2.0) | 172.17.6 (1.3) | 172.98.0 (1.3) | 185.012.3 (1.4) | 216.611.3 (1.7) | 179.47.9 (1.4) | 288.813.4 (2.3) | 158.811.1 (1.2) | 196.310.2 (1.5) | 155.310.3 (1.2) | 194.712.9 (1.5) | 161.58.4 (1.3) | 226.315.4 (1.8) | 234.511.8 (1.8) | 223.112.1 (1.7) | 180.29.1 (1.4) | 190.511.8 (1.5) | 205.012.0 (1.6) | 390.724.1 (3.0) | 143.76.6 (1.1) | 400.323.1 (3.1) | 532.28.7 (4.1) | 331.415.7 (2.6) | 393.918.6 (3.1) | 162.910.5 (1.3) | 914.2100.0 (7.1) | 149.17.0 (1.2) | 420.911.2 (3.3) |
replace all rows Duration for updating all 1000 rows of the table (with 5 warmup iterations). | 146.63.7 (1.1) | 144.11.5 (1.0) | 146.36.8 (1.1) | 137.61.0 (1.0) | 137.71.5 (1.0) | 149.71.0 (1.1) | 149.53.8 (1.1) | 148.73.1 (1.1) | 156.25.4 (1.1) | 159.02.5 (1.2) | 163.211.8 (1.2) | 153.73.6 (1.1) | 173.36.4 (1.3) | 159.36.8 (1.2) | 153.66.3 (1.1) | 166.84.8 (1.2) | 159.32.1 (1.2) | 176.38.2 (1.3) | 162.84.6 (1.2) | 182.68.1 (1.3) | 155.52.5 (1.1) | 174.84.6 (1.3) | 241.35.7 (1.8) | 229.519.6 (1.7) | 204.24.1 (1.5) | 184.11.6 (1.3) | 159.52.4 (1.2) | 164.78.3 (1.2) | 211.87.2 (1.5) | 156.51.7 (1.1) | 155.51.1 (1.1) | 166.23.2 (1.2) | 255.67.3 (1.9) | 158.74.0 (1.2) | 245.99.5 (1.8) | 157.83.0 (1.1) | 160.91.9 (1.2) | 154.33.6 (1.1) | 165.93.5 (1.2) | 179.36.5 (1.3) | 187.76.4 (1.4) | 176.28.7 (1.3) | 208.611.9 (1.5) | 170.23.5 (1.2) | 189.414.4 (1.4) | 543.016.4 (3.9) | 249.112.6 (1.8) | 160.86.8 (1.2) | 267.411.7 (1.9) | 447.912.5 (3.3) | 328.57.7 (2.4) | 258.117.4 (1.9) | 219.75.7 (1.6) | 534.8100.9 (3.9) | 424.68.1 (3.1) | 1,232.229.8 (9.0) |
partial update Time to update the text of every 10th row (with 5 warmup iterations) for a table with 10k rows. | 74.00.0 (1.0) | 77.63.2 (1.1) | 71.82.4 (1.0) | 75.52.8 (1.1) | 83.43.5 (1.2) | 86.48.9 (1.2) | 85.53.5 (1.2) | 86.62.9 (1.2) | 76.83.1 (1.1) | 83.91.5 (1.2) | 95.83.9 (1.3) | 85.02.9 (1.2) | 94.64.6 (1.3) | 99.410.8 (1.4) | 105.86.7 (1.5) | 75.21.4 (1.0) | 103.83.4 (1.4) | 96.54.1 (1.3) | 110.910.5 (1.5) | 119.35.0 (1.7) | 149.09.9 (2.1) | 107.23.7 (1.5) | 87.11.9 (1.2) | 86.62.3 (1.2) | 85.92.1 (1.2) | 236.512.5 (3.3) | 85.53.6 (1.2) | 79.74.4 (1.1) | 80.73.1 (1.1) | 101.25.7 (1.4) | 94.44.7 (1.3) | 82.94.9 (1.2) | 155.35.0 (2.2) | 97.86.1 (1.4) | 80.72.4 (1.1) | 143.64.7 (2.0) | 105.24.9 (1.5) | 75.52.2 (1.1) | 88.02.1 (1.2) | 112.29.9 (1.6) | 92.83.0 (1.3) | 116.94.9 (1.6) | 99.410.3 (1.4) | 2,654.565.6 (37.0) | 115.62.8 (1.6) | 79.02.9 (1.1) | 157.38.7 (2.2) | 271.529.8 (3.8) | 196.78.7 (2.7) | 533.116.8 (7.4) | 83.85.1 (1.2) | 509.239.2 (7.1) | 2,146.612.0 (29.9) | 1,053.2309.6 (14.7) | 1,774.6215.3 (24.7) | 11,344.51640.3 (158.0) |
select row Duration to highlight a row in response to a click on the row. (with 5 warmup iterations). | 10.92.3 (1.0) | 11.22.9 (1.0) | 10.92.0 (1.0) | 10.82.1 (1.0) | 11.13.3 (1.0) | 10.73.0 (1.0) | 9.81.4 (1.0) | 11.02.0 (1.0) | 9.73.0 (1.0) | 11.73.3 (1.0) | 10.03.2 (1.0) | 12.63.6 (1.0) | 9.32.0 (1.0) | 12.94.0 (1.0) | 14.83.3 (1.0) | 10.62.1 (1.0) | 9.63.1 (1.0) | 7.72.7 (1.0) | 11.64.1 (1.0) | 11.53.2 (1.0) | 11.02.2 (1.0) | 9.11.8 (1.0) | 10.43.1 (1.0) | 9.62.4 (1.0) | 10.32.4 (1.0) | 11.82.1 (1.0) | 10.03.0 (1.0) | 7.42.7 (1.0) | 10.63.4 (1.0) | 9.42.7 (1.0) | 9.51.2 (1.0) | 10.31.5 (1.0) | 14.61.9 (1.0) | 10.55.6 (1.0) | 9.92.1 (1.0) | 10.81.9 (1.0) | 9.62.4 (1.0) | 10.72.8 (1.0) | 10.21.9 (1.0) | 28.74.1 (1.8) | 9.72.2 (1.0) | 16.43.9 (1.0) | 11.32.1 (1.0) | 9.32.9 (1.0) | 8.62.5 (1.0) | 9.42.6 (1.0) | 9.13.1 (1.0) | 14.21.9 (1.0) | 12.82.4 (1.0) | 11.42.9 (1.0) | 10.82.1 (1.0) | 45.83.3 (2.9) | 25.70.4 (1.6) | 29.65.0 (1.9) | 120.413.8 (7.5) | 10.82.0 (1.0) |
swap rows Time to swap 2 rows on a 1K table. (with 5 warmup iterations). | 20.24.1 (1.2) | 18.93.9 (1.2) | 19.04.7 (1.2) | 20.04.1 (1.2) | 20.14.4 (1.2) | 20.14.8 (1.2) | 16.43.7 (1.0) | 19.54.8 (1.2) | 19.64.9 (1.2) | 20.04.3 (1.2) | 19.54.2 (1.2) | 20.64.6 (1.3) | 18.04.8 (1.1) | 21.52.6 (1.3) | 21.84.7 (1.3) | 21.25.4 (1.3) | 18.64.5 (1.1) | 18.33.9 (1.1) | 22.34.3 (1.4) | 19.74.6 (1.2) | 19.72.9 (1.2) | 17.45.1 (1.1) | 17.94.5 (1.1) | 19.04.6 (1.2) | 17.94.7 (1.1) | 23.92.3 (1.5) | 107.01.3 (6.5) | 112.43.3 (6.8) | 20.33.7 (1.2) | 107.52.0 (6.5) | 111.62.0 (6.8) | 112.82.7 (6.9) | 25.54.4 (1.6) | 111.41.8 (6.8) | 19.21.6 (1.2) | 114.82.0 (7.0) | 111.11.3 (6.8) | 108.01.5 (6.6) | 111.51.2 (6.8) | 142.54.0 (8.7) | 112.41.5 (6.8) | 118.55.0 (7.2) | 116.51.4 (7.1) | 19.02.9 (1.2) | 122.13.8 (7.4) | 125.02.3 (7.6) | 121.92.4 (7.4) | 123.51.3 (7.5) | 123.13.9 (7.5) | 21.43.5 (1.3) | 116.42.1 (7.1) | 52.95.8 (3.2) | 129.41.5 (7.9) | 20.73.0 (1.3) | 216.56.9 (13.2) | 109.21.9 (6.6) |
remove row Duration to remove a row. (with 5 warmup iterations). | 47.60.6 (1.0) | 48.60.9 (1.1) | 49.81.5 (1.1) | 50.76.8 (1.1) | 48.90.8 (1.1) | 47.50.8 (1.0) | 48.81.0 (1.1) | 48.51.1 (1.1) | 49.61.5 (1.1) | 48.30.9 (1.0) | 57.73.6 (1.3) | 60.36.2 (1.3) | 49.20.9 (1.1) | 61.03.8 (1.3) | 61.85.3 (1.3) | 48.11.9 (1.0) | 49.81.0 (1.1) | 54.21.3 (1.2) | 59.54.0 (1.3) | 57.04.4 (1.2) | 51.23.7 (1.1) | 49.54.0 (1.1) | 48.70.8 (1.1) | 51.90.8 (1.1) | 47.31.0 (1.0) | 47.51.0 (1.0) | 49.21.6 (1.1) | 46.02.2 (1.0) | 57.41.7 (1.2) | 47.52.6 (1.0) | 49.40.9 (1.1) | 48.12.9 (1.0) | 60.64.0 (1.3) | 52.01.3 (1.1) | 56.61.0 (1.2) | 52.71.0 (1.1) | 50.91.2 (1.1) | 117.01.7 (2.5) | 54.01.4 (1.2) | 57.65.3 (1.3) | 53.60.6 (1.2) | 62.78.5 (1.4) | 51.61.0 (1.1) | 49.21.0 (1.1) | 134.76.6 (2.9) | 135.83.1 (2.9) | 56.10.8 (1.2) | 137.45.2 (3.0) | 61.36.0 (1.3) | 51.91.0 (1.1) | 54.91.5 (1.2) | 102.66.1 (2.2) | 70.50.8 (1.5) | 165.936.8 (3.6) | 233.68.2 (5.1) | 117.71.2 (2.6) |
create many rows Duration to create 10,000 rows | 1,249.250.1 (1.0) | 1,324.236.7 (1.1) | 1,343.640.8 (1.1) | 1,312.144.2 (1.1) | 1,331.341.4 (1.1) | 1,365.665.4 (1.1) | 1,359.833.3 (1.1) | 1,410.957.2 (1.1) | 1,580.140.7 (1.3) | 1,529.139.5 (1.2) | 1,325.642.6 (1.1) | 1,403.347.0 (1.1) | 1,773.652.0 (1.4) | 1,440.569.9 (1.2) | 1,343.149.6 (1.1) | 1,505.263.1 (1.2) | 1,809.179.3 (1.4) | 1,889.345.0 (1.5) | 1,640.749.3 (1.3) | 1,577.445.0 (1.3) | 1,491.158.7 (1.2) | 1,653.347.9 (1.3) | 2,298.421.3 (1.8) | 2,433.571.6 (1.9) | 2,074.466.8 (1.7) | 1,433.961.5 (1.1) | 1,497.866.5 (1.2) | 1,470.969.7 (1.2) | 2,043.555.7 (1.6) | 1,551.453.1 (1.2) | 1,877.734.8 (1.5) | 1,617.039.4 (1.3) | 2,016.879.6 (1.6) | 1,891.649.4 (1.5) | 2,242.659.0 (1.8) | 1,471.690.0 (1.2) | 1,909.760.6 (1.5) | 1,594.247.2 (1.3) | 1,856.366.9 (1.5) | 1,529.462.2 (1.2) | 2,131.067.2 (1.7) | 2,055.373.3 (1.6) | 1,993.274.5 (1.6) | 1,607.061.1 (1.3) | 1,936.457.6 (1.6) | 2,037.066.3 (1.6) | 2,378.7102.7 (1.9) | 1,417.655.3 (1.1) | 2,805.658.0 (2.2) | 4,775.065.2 (3.8) | 2,961.7118.0 (2.4) | 2,328.769.7 (1.9) | 1,486.751.2 (1.2) | 8,160.3289.9 (6.5) | 1,487.145.1 (1.2) | 4,007.866.9 (3.2) |
append rows to large table Duration for adding 1000 rows on a table of 10,000 rows. | 215.44.2 (1.0) | 219.85.9 (1.0) | 223.75.6 (1.0) | 228.35.3 (1.1) | 221.45.3 (1.0) | 229.34.8 (1.1) | 280.14.5 (1.3) | 259.210.5 (1.2) | 237.55.3 (1.1) | 234.54.3 (1.1) | 241.04.1 (1.1) | 264.013.5 (1.2) | 268.828.9 (1.2) | 256.321.6 (1.2) | 275.614.9 (1.3) | 261.016.9 (1.2) | 279.37.8 (1.3) | 281.18.3 (1.3) | 255.48.4 (1.2) | 264.816.8 (1.2) | 330.08.4 (1.5) | 265.29.5 (1.2) | 351.613.3 (1.6) | 299.363.5 (1.4) | 265.67.1 (1.2) | 493.69.2 (2.3) | 267.14.8 (1.2) | 255.65.6 (1.2) | 318.89.9 (1.5) | 274.16.9 (1.3) | 268.06.2 (1.2) | 246.64.5 (1.1) | 335.38.0 (1.6) | 275.013.3 (1.3) | 333.412.7 (1.5) | 306.815.4 (1.4) | 286.810.9 (1.3) | 260.55.1 (1.2) | 306.26.1 (1.4) | 270.04.9 (1.3) | 326.27.6 (1.5) | 319.211.4 (1.5) | 289.85.5 (1.3) | 256.17.2 (1.2) | 363.520.6 (1.7) | 281.35.5 (1.3) | 362.04.5 (1.7) | 502.720.0 (2.3) | 470.826.6 (2.2) | 538.85.9 (2.5) | 3,179.950.4 (14.8) | 771.351.8 (3.6) | 2,462.337.8 (11.4) | 717.6112.2 (3.3) | 1,913.1146.0 (8.9) | 1,698.413.7 (7.9) |
clear rows Duration to clear the table filled with 10.000 rows. | 174.41.4 (1.0) | 166.71.3 (1.0) | 175.33.5 (1.1) | 190.01.5 (1.1) | 184.41.5 (1.1) | 180.01.6 (1.1) | 211.12.7 (1.3) | 211.94.0 (1.3) | 199.13.9 (1.2) | 221.92.6 (1.3) | 194.61.7 (1.2) | 192.09.0 (1.2) | 169.94.3 (1.0) | 186.55.5 (1.1) | 187.95.5 (1.1) | 293.725.4 (1.8) | 245.53.2 (1.5) | 212.82.5 (1.3) | 208.13.8 (1.2) | 245.84.5 (1.5) | 228.53.9 (1.4) | 297.56.3 (1.8) | 216.93.6 (1.3) | 258.04.6 (1.5) | 394.113.5 (2.4) | 197.42.4 (1.2) | 240.53.7 (1.4) | 303.518.8 (1.8) | 385.05.4 (2.3) | 243.23.5 (1.5) | 219.53.2 (1.3) | 308.63.8 (1.9) | 194.04.0 (1.2) | 220.24.3 (1.3) | 453.714.8 (2.7) | 231.82.3 (1.4) | 222.21.6 (1.3) | 250.82.5 (1.5) | 255.65.3 (1.5) | 189.94.0 (1.1) | 283.96.0 (1.7) | 212.67.2 (1.3) | 396.47.8 (2.4) | 252.87.4 (1.5) | 238.33.8 (1.4) | 252.316.1 (1.5) | 246.84.2 (1.5) | 307.44.5 (1.8) | 225.24.1 (1.4) | 332.415.1 (2.0) | 479.932.0 (2.9) | 258.46.1 (1.5) | 328.64.0 (2.0) | 1,018.851.4 (6.1) | 200.76.0 (1.2) | 493.96.1 (3.0) |
slowdown geometric mean | 1.04 | 1.05 | 1.06 | 1.07 | 1.08 | 1.10 | 1.11 | 1.14 | 1.14 | 1.16 | 1.16 | 1.18 | 1.18 | 1.20 | 1.21 | 1.21 | 1.25 | 1.25 | 1.27 | 1.29 | 1.29 | 1.30 | 1.36 | 1.38 | 1.40 | 1.42 | 1.44 | 1.46 | 1.46 | 1.48 | 1.49 | 1.50 | 1.51 | 1.52 | 1.54 | 1.55 | 1.55 | 1.56 | 1.57 | 1.64 | 1.68 | 1.70 | 1.74 | 1.78 | 1.86 | 2.00 | 2.00 | 2.01 | 2.18 | 2.42 | 2.63 | 2.74 | 3.16 | 4.25 | 4.36 | 5.65 |
Startup metrics
Name | vanillajs-keyed | solid-js-v0.0.8-keyed | surplus-v0.5.0-keyed | ivi-v0.13.0-keyed | inferno-v4.0.6-keyed | petit-dom-v0.0.12-keyed | attodom-v0.5.2-keyed | nervjs-v1.2.8-keyed | knockout-v3.4.2-ko-jsx-keyed | dio-v8.1.1-keyed | bobril-v8.0.1-keyed | domvm-v3.3.2-keyed | maik-h-v2.5.2-keyed | etch-v0.12.5-keyed | vidom-v0.9.8-keyed | angular-v6.0.0-optimized-keyed | preact-v8.2.6-keyed | hyperhtml-v2.4.0-keyed | elm-v0.18.0-keyed | plastiq-v1.33.0-keyed | vue-v2.5.3-keyed | marionette-v3.5.1-domapi-keyed | svelte-v1.58.5-keyed | datum-v0.10.0-keyed | binding.scala-v10.0.1-keyed | apprun-v1.8.3-keyed | redom-v3.10.1-keyed | angular-v6.0.0-no-zone-keyed | ractive-v0.10.1-keyed | marko-v4.5.6-keyed | react-v16.1.0-keyed | angular-v6.0.0-keyed | dojo2-rc-keyed | react-v16.1.0-redux-combiner-v0.4.1-keyed | ractive-v0.9.13-keyed | mithril-v1.1.1-keyed | react-v16.1.0-redux-v3.7.2-keyed | angular-light-v0.14.1-keyed | react-v16.1.0-easy-state-v5.0.0-keyed | maquette-v3.0.1-keyed | react-v16.1.0-mobX-v3.3.1-keyed | reagent-v0.8-keyed | angular-v1.6.3-keyed | aurelia-v1.2.0-keyed | lit-html-v0.10.0-keyed | nx-v1.0.0-beta.2.0.1-keyed | ember-v3.0.0-keyed | hyperapp-v1.2.0-keyed | glimmer-v0.9.1-keyed | marionette-v3.5.1-keyed | knockout-v3.4.1-keyed | miso-0.18.0.0-keyed | react-lite-v0.15.30-keyed | reflex-dom-v0.4-keyed | choo-v6.5.0-keyed | rx-domh-v0.0.2-rxjs-v5.3.0-keyed |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
consistently interactive a pessimistic TTI - when the CPU and network are both definitely very idle. (no more CPU tasks over 50ms) | 72.01.6 (1.0) | 76.10.9 (1.1) | 70.50.2 (1.0) | 73.51.1 (1.0) | 73.41.2 (1.0) | 71.50.9 (1.0) | 71.71.3 (1.0) | 76.61.9 (1.1) | 80.71.9 (1.1) | 75.31.3 (1.1) | 76.01.7 (1.1) | 76.91.1 (1.1) | 74.61.8 (1.1) | 76.00.8 (1.1) | 78.72.7 (1.1) | 107.011.3 (1.5) | 75.06.5 (1.1) | 83.41.2 (1.2) | 89.93.8 (1.3) | 76.01.0 (1.1) | 84.51.8 (1.2) | 97.22.6 (1.4) | 71.10.9 (1.0) | 74.60.7 (1.1) | 119.81.1 (1.7) | 70.91.1 (1.0) | 72.31.2 (1.0) | 100.95.6 (1.4) | 96.84.9 (1.4) | 77.11.4 (1.1) | 84.90.9 (1.2) | 139.74.0 (2.0) | 99.12.4 (1.4) | 104.52.6 (1.5) | 94.71.8 (1.3) | 74.61.4 (1.1) | 98.61.8 (1.4) | 85.01.0 (1.2) | 86.92.0 (1.2) | 73.51.0 (1.0) | 100.94.7 (1.4) | 110.73.2 (1.6) | 108.62.4 (1.5) | 197.26.9 (2.8) | 76.91.9 (1.1) | 85.90.7 (1.2) | 222.42.7 (3.2) | 83.83.1 (1.2) | 96.00.9 (1.4) | 98.92.9 (1.4) | 83.51.6 (1.2) | 168.71.6 (2.4) | 78.01.5 (1.1) | 332.13.7 (4.7) | 82.81.5 (1.2) | 118.72.9 (1.7) |
script bootup time the total ms required to parse/compile/evaluate all the page's scripts | 4.70.3 (1.0) | 9.00.7 (1.0) | 8.40.3 (1.0) | 3.00.4 (1.0) | 8.00.8 (1.0) | 6.40.6 (1.0) | 5.40.4 (1.0) | 10.10.5 (1.0) | 12.20.7 (1.0) | 9.80.5 (1.0) | 9.40.6 (1.0) | 8.10.7 (1.0) | 9.90.8 (1.0) | 9.40.7 (1.0) | 10.60.6 (1.0) | 16.30.7 (1.0) | 8.10.5 (1.0) | 17.70.2 (1.1) | 12.01.0 (1.0) | 10.10.6 (1.0) | 15.80.8 (1.0) | 29.80.7 (1.9) | 5.50.2 (1.0) | 10.80.3 (1.0) | 34.90.8 (2.2) | 8.50.9 (1.0) | 6.40.4 (1.0) | 16.30.8 (1.0) | 23.90.8 (1.5) | 11.40.6 (1.0) | 18.90.4 (1.2) | 54.51.2 (3.4) | 38.21.1 (2.4) | 34.31.0 (2.1) | 24.80.8 (1.6) | 8.70.5 (1.0) | 29.40.7 (1.8) | 24.30.6 (1.5) | 19.70.6 (1.2) | 6.00.4 (1.0) | 29.40.5 (1.8) | 34.71.0 (2.2) | 35.40.6 (2.2) | 10.30.9 (1.0) | 10.71.2 (1.0) | 9.80.8 (1.0) | 70.71.2 (4.4) | 5.80.3 (1.0) | 14.20.6 (1.0) | 30.90.4 (1.9) | 17.00.6 (1.1) | 20.81.0 (1.3) | 11.50.8 (1.0) | 144.11.3 (9.0) | 18.80.3 (1.2) | 42.61.0 (2.7) |
main thread work cost total amount of time spent doing work on the main thread. includes style/layout/etc. | 151.05.8 (1.0) | 154.76.0 (1.1) | 155.17.8 (1.1) | 147.04.2 (1.0) | 152.15.1 (1.0) | 150.16.0 (1.0) | 150.15.8 (1.0) | 151.04.9 (1.0) | 154.14.9 (1.0) | 153.05.7 (1.0) | 155.68.5 (1.1) | 157.55.8 (1.1) | 149.63.1 (1.0) | 153.05.7 (1.0) | 158.66.1 (1.1) | 169.44.2 (1.2) | 149.45.1 (1.0) | 164.67.8 (1.1) | 159.36.7 (1.1) | 153.65.6 (1.0) | 164.57.0 (1.1) | 176.25.1 (1.2) | 150.66.2 (1.0) | 156.56.6 (1.1) | 184.56.1 (1.3) | 150.75.2 (1.0) | 150.85.4 (1.0) | 171.65.2 (1.2) | 168.55.7 (1.1) | 155.27.2 (1.1) | 164.16.1 (1.1) | 214.94.8 (1.5) | 179.46.6 (1.2) | 178.34.4 (1.2) | 168.74.8 (1.1) | 149.42.9 (1.0) | 172.75.3 (1.2) | 164.75.2 (1.1) | 164.45.3 (1.1) | 148.85.3 (1.0) | 172.95.9 (1.2) | 182.44.6 (1.2) | 183.35.6 (1.2) | 190.88.8 (1.3) | 153.65.7 (1.0) | 163.82.6 (1.1) | 220.75.0 (1.5) | 148.45.4 (1.0) | 173.75.4 (1.2) | 176.75.6 (1.2) | 160.64.9 (1.1) | 169.15.2 (1.2) | 156.54.6 (1.1) | 328.04.8 (2.2) | 159.85.4 (1.1) | 188.54.6 (1.3) |
total byte weight network transfer cost (post-compression) of all the resources loaded into the page. | 165,668.00.0 (1.0) | 182,343.00.0 (1.1) | 169,240.00.0 (1.0) | 173,352.00.0 (1.1) | 181,127.00.0 (1.1) | 167,970.00.0 (1.0) | 162,937.00.0 (1.0) | 193,048.00.0 (1.2) | 251,849.00.0 (1.5) | 186,179.00.0 (1.1) | 201,913.00.0 (1.2) | 172,812.00.0 (1.1) | 178,109.00.0 (1.1) | 178,523.00.0 (1.1) | 197,072.00.0 (1.2) | 349,242.00.0 (2.1) | 170,291.00.0 (1.0) | 170,605.00.0 (1.0) | 399,046.00.0 (2.4) | 186,659.00.0 (1.1) | 228,647.00.0 (1.4) | 348,004.00.0 (2.1) | 165,697.00.0 (1.0) | 182,977.00.0 (1.1) | 447,760.00.0 (2.7) | 171,919.00.0 (1.1) | 165,527.00.0 (1.0) | 344,794.00.0 (2.1) | 383,495.00.0 (2.4) | 193,893.00.0 (1.2) | 264,313.00.0 (1.6) | 383,281.00.0 (2.4) | 317,217.00.0 (1.9) | 315,711.00.0 (1.9) | 373,946.00.0 (2.3) | 188,581.00.0 (1.2) | 344,107.00.0 (2.1) | 227,812.00.0 (1.4) | 264,616.00.0 (1.6) | 199,053.00.0 (1.2) | 336,394.00.0 (2.1) | 410,752.00.0 (2.5) | 338,394.00.0 (2.1) | 459,168.00.0 (2.8) | 170,557.00.0 (1.0) | 258,684.00.0 (1.6) | 749,050.00.0 (4.6) | 163,166.00.0 (1.0) | 243,201.00.0 (1.5) | 355,913.00.0 (2.2) | 220,996.00.0 (1.4) | 1,324,801.00.0 (8.1) | 193,379.00.0 (1.2) | 3,248,316.00.0 (19.9) | 181,484.00.0 (1.1) | 485,202.00.0 (3.0) |
Memory allocation in MBs ± standard deviation
Name | vanillajs-keyed | solid-js-v0.0.8-keyed | surplus-v0.5.0-keyed | ivi-v0.13.0-keyed | inferno-v4.0.6-keyed | petit-dom-v0.0.12-keyed | attodom-v0.5.2-keyed | nervjs-v1.2.8-keyed | knockout-v3.4.2-ko-jsx-keyed | dio-v8.1.1-keyed | bobril-v8.0.1-keyed | domvm-v3.3.2-keyed | maik-h-v2.5.2-keyed | etch-v0.12.5-keyed | vidom-v0.9.8-keyed | angular-v6.0.0-optimized-keyed | preact-v8.2.6-keyed | hyperhtml-v2.4.0-keyed | elm-v0.18.0-keyed | plastiq-v1.33.0-keyed | vue-v2.5.3-keyed | marionette-v3.5.1-domapi-keyed | svelte-v1.58.5-keyed | datum-v0.10.0-keyed | binding.scala-v10.0.1-keyed | apprun-v1.8.3-keyed | redom-v3.10.1-keyed | angular-v6.0.0-no-zone-keyed | ractive-v0.10.1-keyed | marko-v4.5.6-keyed | react-v16.1.0-keyed | angular-v6.0.0-keyed | dojo2-rc-keyed | react-v16.1.0-redux-combiner-v0.4.1-keyed | ractive-v0.9.13-keyed | mithril-v1.1.1-keyed | react-v16.1.0-redux-v3.7.2-keyed | angular-light-v0.14.1-keyed | react-v16.1.0-easy-state-v5.0.0-keyed | maquette-v3.0.1-keyed | react-v16.1.0-mobX-v3.3.1-keyed | reagent-v0.8-keyed | angular-v1.6.3-keyed | aurelia-v1.2.0-keyed | lit-html-v0.10.0-keyed | nx-v1.0.0-beta.2.0.1-keyed | ember-v3.0.0-keyed | hyperapp-v1.2.0-keyed | glimmer-v0.9.1-keyed | marionette-v3.5.1-keyed | knockout-v3.4.1-keyed | miso-0.18.0.0-keyed | react-lite-v0.15.30-keyed | reflex-dom-v0.4-keyed | choo-v6.5.0-keyed | rx-domh-v0.0.2-rxjs-v5.3.0-keyed |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
ready memory Memory usage after page load. | 2.30.0 (1.0) | 2.90.2 (1.2) | 2.80.2 (1.2) | 2.70.1 (1.2) | 2.80.2 (1.2) | 2.60.1 (1.1) | 2.80.2 (1.2) | 3.00.2 (1.3) | 3.10.2 (1.3) | 2.90.2 (1.3) | 3.00.2 (1.3) | 2.60.1 (1.1) | 3.00.2 (1.3) | 2.70.1 (1.2) | 3.00.2 (1.3) | 4.00.2 (1.7) | 2.80.2 (1.2) | 2.90.2 (1.2) | 3.30.2 (1.4) | 3.00.2 (1.3) | 3.30.2 (1.4) | 4.00.2 (1.7) | 2.60.1 (1.1) | 2.80.1 (1.2) | 5.60.2 (2.4) | 2.90.2 (1.2) | 2.60.1 (1.1) | 4.00.1 (1.7) | 3.80.2 (1.6) | 3.10.2 (1.3) | 3.40.1 (1.5) | 6.80.1 (2.9) | 3.60.2 (1.5) | 4.00.2 (1.7) | 3.80.2 (1.6) | 2.70.1 (1.2) | 3.90.2 (1.7) | 3.20.2 (1.4) | 3.40.2 (1.5) | 2.80.2 (1.2) | 4.10.1 (1.8) | 4.10.2 (1.8) | 4.00.2 (1.7) | 4.90.2 (2.1) | 2.70.1 (1.2) | 3.30.2 (1.4) | 7.40.1 (3.2) | 2.60.1 (1.1) | 3.80.2 (1.6) | 4.10.1 (1.8) | 3.30.2 (1.4) | 7.30.1 (3.2) | 3.10.2 (1.3) | 11.50.0 (4.9) | 3.00.2 (1.3) | 4.30.2 (1.9) |
run memory Memory usage after adding 1000 rows. | 2.90.1 (1.0) | 5.00.1 (1.8) | 4.50.1 (1.6) | 5.00.0 (1.7) | 5.20.0 (1.8) | 5.50.1 (1.9) | 3.40.1 (1.2) | 5.60.0 (2.0) | 14.60.0 (5.1) | 6.90.0 (2.4) | 5.60.0 (2.0) | 5.30.0 (1.8) | 9.50.0 (3.3) | 6.00.1 (2.1) | 5.50.0 (1.9) | 6.70.0 (2.4) | 5.70.0 (2.0) | 5.50.1 (1.9) | 7.30.0 (2.5) | 8.00.2 (2.8) | 7.00.0 (2.4) | 6.60.0 (2.3) | 4.20.0 (1.5) | 11.90.0 (4.1) | 19.00.0 (6.6) | 4.20.1 (1.5) | 4.50.0 (1.6) | 6.80.0 (2.4) | 15.90.0 (5.5) | 6.40.0 (2.2) | 7.30.0 (2.5) | 10.60.0 (3.7) | 10.10.0 (3.5) | 7.90.0 (2.8) | 18.60.1 (6.5) | 6.30.0 (2.2) | 8.20.0 (2.9) | 5.90.1 (2.1) | 8.70.0 (3.0) | 5.00.0 (1.7) | 11.20.0 (3.9) | 8.60.0 (3.0) | 11.40.0 (4.0) | 9.00.0 (3.1) | 7.10.0 (2.5) | 8.20.0 (2.9) | 16.40.0 (5.7) | 5.30.1 (1.8) | 16.20.0 (5.6) | 6.90.1 (2.4) | 23.20.0 (8.1) | 14.20.0 (4.9) | 13.00.0 (4.6) | 40.70.0 (14.2) | 4.10.1 (1.4) | 7.60.0 (2.6) |
update eatch 10th row for 1k rows (5 cycles) Memory usage after clicking update every 10th row 5 times | 3.10.1 (1.0) | 4.90.0 (1.6) | 4.50.1 (1.5) | 5.10.0 (1.6) | 5.30.0 (1.7) | 5.80.0 (1.9) | 3.50.2 (1.1) | 5.70.0 (1.8) | 14.60.0 (4.7) | 7.00.0 (2.2) | 5.80.0 (1.9) | 5.40.0 (1.7) | 9.80.0 (3.1) | 6.50.0 (2.1) | 5.60.0 (1.8) | 6.90.0 (2.2) | 5.80.0 (1.9) | 5.80.0 (1.9) | 7.40.0 (2.4) | 10.20.0 (3.3) | 7.10.0 (2.3) | 6.80.0 (2.2) | 4.50.0 (1.4) | 12.20.0 (3.9) | 19.00.0 (6.1) | 4.60.0 (1.5) | 4.80.0 (1.6) | 6.90.0 (2.2) | 15.90.0 (5.1) | 6.70.0 (2.2) | 8.20.0 (2.6) | 10.70.0 (3.4) | 10.60.0 (3.4) | 8.90.0 (2.9) | 18.70.0 (6.0) | 8.70.0 (2.8) | 9.30.0 (3.0) | 6.10.0 (2.0) | 9.40.0 (3.0) | 5.10.0 (1.6) | 11.90.0 (3.8) | 9.90.0 (3.2) | 11.50.0 (3.7) | 9.00.0 (2.9) | 7.60.0 (2.4) | 8.30.0 (2.7) | 16.60.0 (5.3) | 5.90.1 (1.9) | 16.40.0 (5.3) | 7.00.0 (2.3) | 23.30.0 (7.5) | 19.50.0 (6.3) | 7.50.0 (2.4) | 45.40.1 (14.6) | 4.60.0 (1.5) | 7.70.0 (2.5) |
replace 1k rows (5 cycles) Memory usage after clicking create 1000 rows 5 times | 3.40.1 (1.0) | 5.30.1 (1.5) | 4.60.1 (1.3) | 5.10.0 (1.5) | 5.30.0 (1.5) | 5.80.1 (1.7) | 3.60.1 (1.1) | 5.70.0 (1.7) | 9.00.0 (2.6) | 7.00.0 (2.1) | 5.70.0 (1.7) | 5.40.0 (1.6) | 10.00.0 (2.9) | 6.40.0 (1.9) | 5.70.0 (1.7) | 7.20.0 (2.1) | 8.50.0 (2.5) | 6.00.1 (1.8) | 7.50.0 (2.2) | 26.10.1 (7.6) | 7.10.0 (2.1) | 7.30.0 (2.1) | 4.50.0 (1.3) | 12.40.0 (3.6) | 19.60.0 (5.8) | 9.60.0 (2.8) | 6.50.1 (1.9) | 7.30.0 (2.1) | 16.40.0 (4.8) | 6.50.0 (1.9) | 8.70.0 (2.5) | 10.90.0 (3.2) | 10.70.0 (3.1) | 9.30.0 (2.7) | 19.10.0 (5.6) | 6.70.1 (2.0) | 10.60.0 (3.1) | 6.30.1 (1.8) | 12.40.0 (3.6) | 5.10.0 (1.5) | 18.20.1 (5.3) | 10.50.0 (3.1) | 11.90.0 (3.5) | 9.30.0 (2.7) | 7.60.1 (2.2) | 10.30.0 (3.0) | 17.50.0 (5.1) | 5.50.0 (1.6) | 16.80.0 (4.9) | 7.70.0 (2.2) | 14.90.0 (4.4) | 14.90.0 (4.4) | 7.50.0 (2.2) | 87.21.2 (25.6) | 3.90.1 (1.2) | 7.80.0 (2.3) |
creating/clearing 1k rows (5 cycles) Memory usage after creating and clearing 1000 rows 5 times | 2.90.0 (1.0) | 3.20.0 (1.1) | 3.10.0 (1.1) | 2.80.0 (1.0) | 3.10.0 (1.1) | 3.00.0 (1.1) | 3.00.0 (1.0) | 3.30.0 (1.2) | 3.40.0 (1.2) | 3.20.0 (1.1) | 3.20.0 (1.1) | 2.80.0 (1.0) | 3.40.0 (1.2) | 3.20.0 (1.1) | 3.30.0 (1.2) | 4.70.0 (1.7) | 5.90.0 (2.1) | 3.30.0 (1.2) | 3.80.0 (1.3) | 25.80.0 (9.1) | 3.50.0 (1.3) | 4.80.0 (1.7) | 3.00.0 (1.1) | 3.30.0 (1.2) | 6.50.0 (2.3) | 8.30.0 (2.9) | 4.80.0 (1.7) | 4.70.0 (1.7) | 5.50.0 (2.0) | 3.40.0 (1.2) | 4.40.0 (1.6) | 7.20.0 (2.5) | 4.40.0 (1.5) | 5.10.0 (1.8) | 6.00.0 (2.1) | 3.20.0 (1.1) | 5.50.0 (1.9) | 3.60.0 (1.3) | 5.90.0 (2.1) | 3.10.0 (1.1) | 8.10.0 (2.9) | 5.60.0 (2.0) | 4.50.1 (1.6) | 6.20.0 (2.2) | 3.30.1 (1.2) | 5.20.0 (1.8) | 8.90.0 (3.2) | 3.10.0 (1.1) | 9.70.0 (3.4) | 5.00.0 (1.8) | 4.20.0 (1.5) | 14.60.1 (5.2) | 3.50.0 (1.2) | 65.10.3 (23.0) | 3.10.0 (1.1) | 4.70.0 (1.7) |
Non keyed results
Non keyed implementations are allowed to reuse existing dom elements. In consequence inserting or deleting an element in the data array might append after or delete the last table row and update the contents of all elements after the inserting or deletion index. This can perform better, but can cause problems if dom state is modified externally.
Duration in milliseconds ± standard deviation (Slowdown = Duration / Fastest)
Name | vanillajs-non-keyed | surplus-v0.5.0-non-keyed | inferno-v4.0.6-non-keyed | dio-v8.1.1-non-keyed | maik-h-v2.5.2-non-keyed | domvm-v3.3.2-non-keyed | simulacra-v2.1.5-non-keyed | redom-v3.10.1-non-keyed | moon-v0.11.0 | san-v3.5.5-non-keyed | angular-v6.0.0-non-keyed | etch-v0.12.5-non-keyed | react-v16.1.0-non-keyed | svelte-v1.58.5-non-keyed | vue-v2.5.3-non-keyed | lit-html-v0.10.0-non-keyed | nx-v1.0.0-beta.2.0.1-non-keyed | vuera-v0.1.3-non-keyed | cyclejs-dom-v19.3.0-non-keyed | ractive-v0.10.1-non-keyed | slim-js-v3.0.2-non-keyed | ractive-v0.9.13-non-keyed | riot-v3.7.4-non-keyed | apprun-v1.8.3-non-keyed | hyperapp-v1.2.0-non-keyed | gruu-v1.7.3-non-keyed | dojo2-rc-non-keyed | polymer-v2.0.0-non-keyed | tsers-v1.0.0-non-keyed | rivets-v0.9.6-non-keyed | stem-v0.2.70-non-keyed | aurelia-v1.2.0-non-keyed | halogen-v2.1.0-non-keyed | thermite-v4.0.0-non-keyed | pux-v11.0.0-non-keyed |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
create rows Duration for creating 1000 rows after the page loaded. | 126.64.4 (1.0) | 127.29.0 (1.0) | 140.95.5 (1.1) | 154.17.9 (1.2) | 174.012.3 (1.4) | 160.47.7 (1.3) | 157.98.5 (1.2) | 158.08.8 (1.2) | 136.96.8 (1.1) | 155.57.6 (1.2) | 180.28.1 (1.4) | 154.47.5 (1.2) | 172.39.1 (1.4) | 220.75.8 (1.7) | 166.58.5 (1.3) | 176.710.2 (1.4) | 204.912.1 (1.6) | 172.78.1 (1.4) | 151.06.2 (1.2) | 246.912.4 (2.0) | 254.711.5 (2.0) | 280.212.4 (2.2) | 212.716.9 (1.7) | 149.09.2 (1.2) | 142.87.4 (1.1) | 178.612.8 (1.4) | 210.99.9 (1.7) | 193.49.8 (1.5) | 245.112.4 (1.9) | 361.016.8 (2.9) | 213.518.6 (1.7) | 179.39.3 (1.4) | 261.413.7 (2.1) | 502.826.2 (4.0) | 717.528.7 (5.7) |
replace all rows Duration for updating all 1000 rows of the table (with 5 warmup iterations). | 55.43.2 (1.0) | 56.31.9 (1.0) | 57.42.7 (1.0) | 59.31.4 (1.1) | 58.41.8 (1.1) | 68.08.1 (1.2) | 61.13.0 (1.1) | 60.44.1 (1.1) | 62.65.5 (1.1) | 65.42.9 (1.2) | 56.22.5 (1.0) | 70.93.4 (1.3) | 62.51.0 (1.1) | 56.81.7 (1.0) | 60.81.8 (1.1) | 59.32.4 (1.1) | 65.11.6 (1.2) | 61.01.1 (1.1) | 64.33.8 (1.2) | 61.51.4 (1.1) | 67.51.6 (1.2) | 63.61.9 (1.1) | 58.41.3 (1.1) | 67.22.8 (1.2) | 66.73.4 (1.2) | 109.91.7 (2.0) | 97.24.1 (1.8) | 63.61.8 (1.1) | 94.11.7 (1.7) | 94.00.9 (1.7) | 225.53.3 (4.1) | 74.26.0 (1.3) | 94.41.6 (1.7) | 128.83.8 (2.3) | 226.74.9 (4.1) |
partial update Time to update the text of every 10th row (with 5 warmup iterations) for a table with 10k rows. | 75.02.4 (1.0) | 76.42.8 (1.0) | 79.84.2 (1.1) | 83.51.2 (1.1) | 95.65.0 (1.3) | 84.62.4 (1.1) | 73.62.2 (1.0) | 86.63.7 (1.2) | 132.318.5 (1.8) | 92.414.3 (1.3) | 81.44.8 (1.1) | 98.93.8 (1.3) | 94.13.4 (1.3) | 73.62.7 (1.0) | 138.55.0 (1.9) | 107.51.7 (1.5) | 79.93.7 (1.1) | 159.45.1 (2.2) | 189.17.2 (2.6) | 81.93.2 (1.1) | 94.12.3 (1.3) | 81.62.4 (1.1) | 161.515.1 (2.2) | 237.829.6 (3.2) | 259.633.4 (3.5) | 206.47.4 (2.8) | 171.010.4 (2.3) | 450.712.1 (6.1) | 217.42.8 (3.0) | 86.92.4 (1.2) | 111.53.2 (1.5) | 2,711.129.6 (36.9) | 630.992.6 (8.6) | 835.16.2 (11.4) | 1,743.448.2 (23.7) |
select row Duration to highlight a row in response to a click on the row. (with 5 warmup iterations). | 11.32.5 (1.0) | 8.41.6 (1.0) | 10.41.8 (1.0) | 11.13.6 (1.0) | 10.43.3 (1.0) | 11.93.6 (1.0) | 10.32.5 (1.0) | 11.23.3 (1.0) | 9.51.2 (1.0) | 9.61.8 (1.0) | 8.43.4 (1.0) | 10.72.1 (1.0) | 10.41.6 (1.0) | 10.02.2 (1.0) | 12.82.2 (1.0) | 8.92.1 (1.0) | 9.51.9 (1.0) | 11.51.8 (1.0) | 10.81.3 (1.0) | 10.52.8 (1.0) | 9.41.3 (1.0) | 9.81.5 (1.0) | 9.11.6 (1.0) | 8.51.2 (1.0) | 15.31.3 (1.0) | 11.52.3 (1.0) | 16.62.2 (1.0) | 11.65.7 (1.0) | 15.31.1 (1.0) | 9.82.2 (1.0) | 10.41.9 (1.0) | 9.92.7 (1.0) | 42.51.8 (2.7) | 64.62.0 (4.0) | 150.13.5 (9.4) |
swap rows Time to swap 2 rows on a 1K table. (with 5 warmup iterations). | 12.15.6 (1.0) | 13.93.8 (1.0) | 13.93.4 (1.0) | 12.04.0 (1.0) | 12.64.9 (1.0) | 13.05.0 (1.0) | 15.14.9 (1.0) | 14.24.1 (1.0) | 15.64.9 (1.0) | 14.64.9 (1.0) | 14.14.9 (1.0) | 12.93.8 (1.0) | 12.43.3 (1.0) | 14.72.9 (1.0) | 14.64.0 (1.0) | 13.33.2 (1.0) | 13.46.0 (1.0) | 16.54.3 (1.0) | 15.22.1 (1.0) | 11.75.1 (1.0) | 14.54.7 (1.0) | 10.54.0 (1.0) | 15.02.2 (1.0) | 17.71.7 (1.1) | 18.00.9 (1.1) | 15.73.5 (1.0) | 17.54.9 (1.1) | 15.83.8 (1.0) | 19.50.7 (1.2) | 9.83.7 (1.0) | 17.22.6 (1.1) | 16.24.9 (1.0) | 43.01.5 (2.7) | 67.03.2 (4.2) | 191.736.8 (12.0) |
remove row Duration to remove a row. (with 5 warmup iterations). | 31.01.1 (1.0) | 30.90.9 (1.0) | 34.45.0 (1.1) | 35.82.2 (1.2) | 35.40.6 (1.2) | 45.93.7 (1.5) | 49.01.2 (1.6) | 38.61.5 (1.3) | 40.010.6 (1.3) | 48.74.4 (1.6) | 32.64.0 (1.1) | 48.75.9 (1.6) | 37.91.9 (1.2) | 30.50.5 (1.0) | 38.90.8 (1.3) | 36.51.0 (1.2) | 44.70.9 (1.5) | 40.11.4 (1.3) | 41.83.2 (1.4) | 38.80.9 (1.3) | 49.01.0 (1.6) | 39.60.5 (1.3) | 38.20.7 (1.3) | 47.91.0 (1.6) | 43.52.0 (1.4) | 54.99.1 (1.8) | 79.25.5 (2.6) | 45.21.1 (1.5) | 54.81.9 (1.8) | 60.61.8 (2.0) | 52.90.7 (1.7) | 42.11.4 (1.4) | 74.14.6 (2.4) | 107.23.5 (3.5) | 192.66.8 (6.3) |
create many rows Duration to create 10,000 rows | 1,238.145.8 (1.0) | 1,260.947.8 (1.0) | 1,318.937.7 (1.1) | 1,511.933.9 (1.2) | 1,798.142.3 (1.5) | 1,381.249.8 (1.1) | 1,603.461.0 (1.3) | 1,506.739.7 (1.2) | 1,332.754.8 (1.1) | 1,493.665.2 (1.2) | 1,600.634.3 (1.3) | 1,426.576.2 (1.2) | 1,883.232.6 (1.5) | 2,271.229.0 (1.8) | 1,452.467.0 (1.2) | 1,857.342.7 (1.5) | 2,036.868.6 (1.6) | 1,497.950.3 (1.2) | 1,469.531.2 (1.2) | 1,981.750.0 (1.6) | 2,501.857.9 (2.0) | 2,221.167.2 (1.8) | 2,337.996.7 (1.9) | 1,429.564.7 (1.2) | 1,415.251.9 (1.1) | 1,665.147.8 (1.3) | 1,962.667.3 (1.6) | 2,131.967.0 (1.7) | 2,011.842.0 (1.6) | 3,330.5141.2 (2.7) | 1,976.773.9 (1.6) | 1,597.862.3 (1.3) | 2,283.562.8 (1.8) | 4,048.8109.7 (3.3) | 5,167.6105.5 (4.2) |
append rows to large table Duration for adding 1000 rows on a table of 10,000 rows. | 215.84.8 (1.0) | 237.48.8 (1.1) | 223.76.2 (1.0) | 240.36.1 (1.1) | 258.47.4 (1.2) | 257.59.4 (1.2) | 231.44.1 (1.1) | 271.25.9 (1.3) | 268.213.3 (1.2) | 243.07.3 (1.1) | 247.36.0 (1.1) | 244.95.5 (1.1) | 268.53.1 (1.2) | 320.55.3 (1.5) | 318.47.7 (1.5) | 351.73.8 (1.6) | 278.36.4 (1.3) | 333.45.4 (1.5) | 351.215.3 (1.6) | 286.97.3 (1.3) | 351.57.0 (1.6) | 313.214.9 (1.5) | 370.97.5 (1.7) | 489.810.3 (2.3) | 486.420.0 (2.3) | 373.145.1 (1.7) | 338.66.0 (1.6) | 688.830.6 (3.2) | 437.77.6 (2.0) | 390.959.3 (1.8) | 266.16.7 (1.2) | 255.79.1 (1.2) | 853.676.3 (4.0) | 1,179.742.8 (5.5) | 2,245.121.9 (10.4) |
clear rows Duration to clear the table filled with 10.000 rows. | 174.61.1 (1.1) | 162.34.3 (1.0) | 190.71.7 (1.2) | 221.01.6 (1.4) | 174.18.7 (1.1) | 190.88.0 (1.2) | 228.12.2 (1.4) | 231.03.9 (1.4) | 197.84.9 (1.2) | 196.95.1 (1.2) | 309.92.6 (1.9) | 184.75.6 (1.1) | 223.02.0 (1.4) | 228.41.5 (1.4) | 232.93.8 (1.4) | 230.75.7 (1.4) | 241.27.2 (1.5) | 226.21.9 (1.4) | 239.51.6 (1.5) | 362.55.7 (2.2) | 203.13.4 (1.3) | 388.12.8 (2.4) | 263.75.9 (1.6) | 199.02.4 (1.2) | 299.25.6 (1.8) | 220.24.5 (1.4) | 186.95.7 (1.2) | 221.03.9 (1.4) | 322.37.5 (2.0) | 438.984.8 (2.7) | 934.06.3 (5.8) | 253.06.1 (1.6) | 323.44.3 (2.0) | 583.56.5 (3.6) | 579.311.3 (3.6) |
slowdown geometric mean | 1.01 | 1.02 | 1.07 | 1.14 | 1.17 | 1.17 | 1.18 | 1.18 | 1.19 | 1.19 | 1.19 | 1.20 | 1.23 | 1.24 | 1.27 | 1.28 | 1.29 | 1.31 | 1.34 | 1.35 | 1.40 | 1.42 | 1.43 | 1.44 | 1.49 | 1.53 | 1.57 | 1.70 | 1.73 | 1.74 | 1.82 | 1.83 | 2.70 | 4.19 | 7.32 |
Startup metrics
Name | vanillajs-non-keyed | surplus-v0.5.0-non-keyed | inferno-v4.0.6-non-keyed | dio-v8.1.1-non-keyed | maik-h-v2.5.2-non-keyed | domvm-v3.3.2-non-keyed | simulacra-v2.1.5-non-keyed | redom-v3.10.1-non-keyed | moon-v0.11.0 | san-v3.5.5-non-keyed | angular-v6.0.0-non-keyed | etch-v0.12.5-non-keyed | react-v16.1.0-non-keyed | svelte-v1.58.5-non-keyed | vue-v2.5.3-non-keyed | lit-html-v0.10.0-non-keyed | nx-v1.0.0-beta.2.0.1-non-keyed | vuera-v0.1.3-non-keyed | cyclejs-dom-v19.3.0-non-keyed | ractive-v0.10.1-non-keyed | slim-js-v3.0.2-non-keyed | ractive-v0.9.13-non-keyed | riot-v3.7.4-non-keyed | apprun-v1.8.3-non-keyed | hyperapp-v1.2.0-non-keyed | gruu-v1.7.3-non-keyed | dojo2-rc-non-keyed | polymer-v2.0.0-non-keyed | tsers-v1.0.0-non-keyed | rivets-v0.9.6-non-keyed | stem-v0.2.70-non-keyed | aurelia-v1.2.0-non-keyed | halogen-v2.1.0-non-keyed | thermite-v4.0.0-non-keyed | pux-v11.0.0-non-keyed |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
consistently interactive a pessimistic TTI - when the CPU and network are both definitely very idle. (no more CPU tasks over 50ms) | 71.73.9 (1.0) | 72.51.0 (1.0) | 75.12.1 (1.0) | 76.01.0 (1.1) | 74.41.7 (1.0) | 76.61.4 (1.1) | 74.20.7 (1.0) | 72.20.7 (1.0) | 75.02.4 (1.0) | 83.01.1 (1.2) | 138.62.3 (1.9) | 76.01.3 (1.1) | 86.21.5 (1.2) | 72.31.7 (1.0) | 86.45.5 (1.2) | 76.11.7 (1.1) | 87.90.6 (1.2) | 122.84.4 (1.7) | 98.52.5 (1.4) | 95.73.1 (1.3) | 76.21.6 (1.1) | 95.73.0 (1.3) | 78.40.7 (1.1) | 71.62.5 (1.0) | 81.54.8 (1.1) | 77.54.4 (1.1) | 99.71.7 (1.4) | 110.22.3 (1.5) | 139.81.8 (2.0) | 79.61.2 (1.1) | 148.82.5 (2.1) | 197.43.1 (2.8) | 95.21.6 (1.3) | 139.33.7 (1.9) | 145.32.7 (2.0) |
script bootup time the total ms required to parse/compile/evaluate all the page's scripts | 4.90.6 (1.0) | 6.30.6 (1.0) | 9.20.8 (1.0) | 9.90.7 (1.0) | 10.40.7 (1.0) | 8.80.7 (1.0) | 8.40.9 (1.0) | 6.50.3 (1.0) | 8.60.4 (1.0) | 17.20.5 (1.1) | 53.30.5 (3.3) | 9.10.4 (1.0) | 19.00.4 (1.2) | 5.60.3 (1.0) | 15.30.7 (1.0) | 10.31.0 (1.0) | 12.80.3 (1.0) | 45.61.1 (2.9) | 30.20.9 (1.9) | 24.11.1 (1.5) | 12.71.2 (1.0) | 24.71.4 (1.5) | 21.70.9 (1.4) | 8.70.8 (1.0) | 5.90.3 (1.0) | 9.20.8 (1.0) | 38.50.9 (2.4) | 28.20.8 (1.8) | 57.00.9 (3.6) | 14.10.7 (1.0) | 68.58.3 (4.3) | 10.00.7 (1.0) | 25.90.9 (1.6) | 54.71.8 (3.4) | 62.11.0 (3.9) |
main thread work cost total amount of time spent doing work on the main thread. includes style/layout/etc. | 150.65.7 (1.0) | 149.45.3 (1.0) | 152.76.1 (1.0) | 153.45.6 (1.0) | 148.21.1 (1.0) | 153.73.4 (1.0) | 152.54.6 (1.0) | 149.26.0 (1.0) | 153.16.4 (1.0) | 159.23.6 (1.1) | 218.44.9 (1.5) | 152.35.0 (1.0) | 164.85.0 (1.1) | 152.16.2 (1.0) | 161.06.7 (1.1) | 155.85.6 (1.1) | 173.53.7 (1.2) | 194.16.4 (1.3) | 176.35.5 (1.2) | 167.85.8 (1.1) | 159.85.5 (1.1) | 172.24.6 (1.2) | 155.41.4 (1.0) | 156.413.1 (1.1) | 148.15.1 (1.0) | 154.65.4 (1.0) | 177.45.4 (1.2) | 176.75.9 (1.2) | 203.24.3 (1.4) | 159.04.6 (1.1) | 213.58.4 (1.4) | 188.07.0 (1.3) | 172.16.7 (1.2) | 198.76.0 (1.3) | 205.06.5 (1.4) |
total byte weight network transfer cost (post-compression) of all the resources loaded into the page. | 165,256.00.0 (1.0) | 168,406.00.0 (1.0) | 184,479.00.0 (1.1) | 186,180.00.0 (1.1) | 178,087.00.0 (1.1) | 172,795.00.0 (1.1) | 173,437.00.0 (1.1) | 165,527.00.0 (1.0) | 183,142.00.0 (1.1) | 208,586.00.0 (1.3) | 383,276.00.0 (2.3) | 178,528.00.0 (1.1) | 264,324.00.0 (1.6) | 165,226.00.0 (1.0) | 222,847.00.0 (1.4) | 169,626.00.0 (1.0) | 258,972.00.0 (1.6) | 455,975.00.0 (2.8) | 306,050.00.0 (1.9) | 383,354.00.0 (2.3) | 187,877.00.0 (1.2) | 373,805.00.0 (2.3) | 186,249.00.0 (1.1) | 171,913.00.0 (1.1) | 163,160.00.0 (1.0) | 170,254.00.0 (1.0) | 317,229.00.0 (1.9) | 345,796.00.0 (2.1) | 557,462.00.0 (3.4) | 189,434.00.0 (1.2) | 749,613.00.0 (4.6) | 459,350.00.0 (2.8) | 506,295.00.0 (3.1) | 1,077,171.00.0 (6.6) | 1,076,354.00.0 (6.6) |
Memory allocation in MBs ± standard deviation
Name | vanillajs-non-keyed | surplus-v0.5.0-non-keyed | inferno-v4.0.6-non-keyed | dio-v8.1.1-non-keyed | maik-h-v2.5.2-non-keyed | domvm-v3.3.2-non-keyed | simulacra-v2.1.5-non-keyed | redom-v3.10.1-non-keyed | moon-v0.11.0 | san-v3.5.5-non-keyed | angular-v6.0.0-non-keyed | etch-v0.12.5-non-keyed | react-v16.1.0-non-keyed | svelte-v1.58.5-non-keyed | vue-v2.5.3-non-keyed | lit-html-v0.10.0-non-keyed | nx-v1.0.0-beta.2.0.1-non-keyed | vuera-v0.1.3-non-keyed | cyclejs-dom-v19.3.0-non-keyed | ractive-v0.10.1-non-keyed | slim-js-v3.0.2-non-keyed | ractive-v0.9.13-non-keyed | riot-v3.7.4-non-keyed | apprun-v1.8.3-non-keyed | hyperapp-v1.2.0-non-keyed | gruu-v1.7.3-non-keyed | dojo2-rc-non-keyed | polymer-v2.0.0-non-keyed | tsers-v1.0.0-non-keyed | rivets-v0.9.6-non-keyed | stem-v0.2.70-non-keyed | aurelia-v1.2.0-non-keyed | halogen-v2.1.0-non-keyed | thermite-v4.0.0-non-keyed | pux-v11.0.0-non-keyed |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
ready memory Memory usage after page load. | 2.30.0 (1.0) | 2.80.2 (1.2) | 2.90.2 (1.2) | 2.90.2 (1.3) | 2.70.1 (1.2) | 2.60.1 (1.1) | 2.80.2 (1.2) | 2.60.1 (1.1) | 2.90.2 (1.2) | 3.20.2 (1.4) | 6.80.1 (2.9) | 2.70.1 (1.2) | 3.40.2 (1.5) | 2.60.1 (1.1) | 3.20.2 (1.4) | 2.80.2 (1.2) | 3.30.2 (1.4) | 4.70.2 (2.0) | 3.40.1 (1.5) | 3.80.2 (1.6) | 3.00.2 (1.3) | 3.80.2 (1.6) | 3.10.2 (1.3) | 2.90.2 (1.2) | 2.80.2 (1.2) | 2.90.2 (1.2) | 3.60.2 (1.5) | 3.50.1 (1.5) | 5.40.2 (2.3) | 2.80.1 (1.2) | 4.70.1 (2.0) | 4.90.1 (2.1) | 3.80.2 (1.6) | 5.30.1 (2.3) | 5.40.2 (2.3) |
run memory Memory usage after adding 1000 rows. | 2.90.1 (1.0) | 3.40.1 (1.2) | 5.20.0 (1.8) | 6.90.0 (2.4) | 9.50.1 (3.3) | 5.30.0 (1.8) | 8.20.0 (2.8) | 4.40.0 (1.5) | 6.20.0 (2.2) | 6.90.0 (2.4) | 10.60.0 (3.7) | 6.20.1 (2.2) | 7.30.0 (2.5) | 4.10.0 (1.4) | 6.70.0 (2.3) | 7.10.0 (2.5) | 8.20.0 (2.9) | 8.30.0 (2.9) | 6.30.1 (2.2) | 15.90.0 (5.5) | 10.30.0 (3.6) | 18.60.1 (6.5) | 6.60.0 (2.3) | 4.20.1 (1.5) | 5.30.1 (1.8) | 6.90.0 (2.4) | 10.10.0 (3.5) | 6.10.1 (2.1) | 11.50.0 (4.0) | 25.30.1 (8.8) | 9.20.0 (3.2) | 9.00.0 (3.1) | 23.10.0 (8.0) | 15.60.1 (5.4) | 15.20.0 (5.3) |
update eatch 10th row for 1k rows (5 cycles) Memory usage after clicking update every 10th row 5 times | 3.10.1 (1.0) | 3.50.1 (1.1) | 5.30.0 (1.7) | 7.00.0 (2.2) | 9.70.0 (3.1) | 5.40.0 (1.7) | 8.20.0 (2.6) | 4.80.0 (1.5) | 6.30.0 (2.0) | 6.90.0 (2.2) | 10.70.0 (3.4) | 6.50.0 (2.1) | 8.20.0 (2.6) | 4.50.0 (1.4) | 6.80.0 (2.2) | 7.50.0 (2.4) | 8.30.0 (2.7) | 8.40.0 (2.7) | 6.40.0 (2.1) | 15.90.0 (5.1) | 10.40.0 (3.3) | 18.60.0 (6.0) | 6.70.0 (2.1) | 4.60.0 (1.5) | 5.80.2 (1.9) | 7.20.0 (2.3) | 10.60.0 (3.4) | 6.40.0 (2.1) | 12.40.0 (4.0) | 25.40.1 (8.2) | 9.30.0 (3.0) | 9.00.0 (2.9) | 34.10.0 (11.0) | 15.90.0 (5.1) | 15.50.0 (5.0) |
replace 1k rows (5 cycles) Memory usage after clicking create 1000 rows 5 times | 3.40.1 (1.0) | 3.50.1 (1.0) | 5.30.0 (1.5) | 7.00.0 (2.0) | 9.70.0 (2.8) | 5.40.0 (1.6) | 8.30.0 (2.4) | 4.80.0 (1.4) | 6.30.0 (1.8) | 7.00.0 (2.0) | 10.80.0 (3.1) | 6.40.0 (1.8) | 11.50.0 (3.3) | 4.60.0 (1.3) | 6.80.0 (2.0) | 7.70.0 (2.2) | 10.50.2 (3.0) | 8.40.0 (2.4) | 6.40.0 (1.9) | 16.00.0 (4.7) | 10.30.0 (3.0) | 18.80.0 (5.5) | 6.80.0 (2.0) | 4.70.0 (1.4) | 6.00.1 (1.7) | 9.60.0 (2.8) | 12.90.0 (3.8) | 6.60.0 (1.9) | 20.10.0 (5.8) | 28.30.1 (8.2) | 9.80.0 (2.8) | 10.10.0 (2.9) | 34.20.0 (9.9) | 16.00.0 (4.6) | 15.50.0 (4.5) |
creating/clearing 1k rows (5 cycles) Memory usage after creating and clearing 1000 rows 5 times | 2.90.0 (1.0) | 3.00.0 (1.1) | 3.10.0 (1.1) | 3.20.0 (1.1) | 3.40.0 (1.2) | 2.80.0 (1.0) | 3.10.0 (1.1) | 4.80.0 (1.7) | 3.10.0 (1.1) | 3.60.1 (1.3) | 7.20.0 (2.5) | 3.20.0 (1.1) | 4.40.0 (1.6) | 3.00.0 (1.0) | 3.50.0 (1.2) | 3.30.1 (1.2) | 5.10.2 (1.8) | 4.90.0 (1.7) | 3.60.0 (1.3) | 5.50.0 (1.9) | 3.30.0 (1.2) | 5.80.0 (2.1) | 3.30.0 (1.2) | 3.10.0 (1.1) | 3.10.0 (1.1) | 3.20.0 (1.1) | 4.30.1 (1.5) | 3.90.1 (1.4) | 15.70.0 (5.6) | 3.40.0 (1.2) | 5.40.0 (1.9) | 6.20.0 (2.2) | 23.20.0 (8.2) | 6.40.0 (2.3) | 6.60.1 (2.3) |