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 | surplus-v0.5.3-keyed | vanillajs-wc-keyed | solid-js-v0.0.11-keyed | ivi-v0.13.0-keyed | inferno-v5.3.0-keyed | ko-jsx-v3.4.2-keyed | domvm-v3.4.3-keyed | petit-dom-v0.2.0-keyed | bobril-v8.11.2-keyed | dio-v9.1.1-keyed | attodom-v0.6.1-keyed | nervjs-v1.3.2-keyed | maik-h-v2.5.2-keyed | vidom-v0.9.8-keyed | angular-optimized-v6.1.0-keyed | aurelia-v1.3.0-keyed | hyperhtml-v2.12.0-keyed | etch-v0.14.0-keyed | marionette-v4.0.0-beta.1-keyed | elm-v0.18.0-keyed | preact-v8.2.6-keyed | plastiq-v1.33.0-keyed | datum-v0.10.0-keyed | vue-v2.5.16-keyed | svelte-v1.58.5-keyed | apprun-v1.8.3-keyed | binding.scala-v10.0.1-keyed | redom-v3.12.7-keyed | angular-noopzone-v6.1.0-keyed | marko-v4.12.3-keyed | angular-v6.1.0-keyed | ractive-v0.10.1-keyed | react-v16.4.1-keyed | react-redux-combiner-v16.1.0 + 0.4.1-keyed | mithril-v1.1.1-keyed | angular-ivy-v6.1.0-keyed | angular-light-v0.14.1-keyed | react-redux-v16.1.0 + 3.7.2-keyed | react-easy-state-v16.1.0 + 5.0.0-keyed | maquette-v3.3.0-keyed | reagent-v0.8-keyed | react-mobX-v16.1.0 + 3.3.1-keyed | angularjs-v1.7.2-keyed | lit-html-v0.10.2-keyed | glimmer-v0.9.1-keyed | nx-v1.0.0-beta.2.0.1-keyed | ember-v3.0.0-keyed | hyperapp-v1.2.0-keyed | marionette-jquery-v4.0.0-beta.1-keyed | dojo2-v2.0.0-keyed | knockout-v3.4.1-keyed | miso-v0.18.0.0-keyed | react-lite-v0.15.30-keyed | reflex-dom-v0.4-keyed | choo-v6.13.0-keyed | rx-domh-rxjs-v0.0.2-keyed |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
create rows Duration for creating 1000 rows after the page loaded. | 129.25.7 (1.0) | 132.75.3 (1.0) | 137.15.2 (1.1) | 136.96.4 (1.1) | 137.96.3 (1.1) | 144.56.8 (1.1) | 151.28.8 (1.2) | 149.66.3 (1.2) | 154.15.6 (1.2) | 150.311.7 (1.2) | 161.18.5 (1.2) | 136.65.5 (1.1) | 155.07.9 (1.2) | 174.611.3 (1.4) | 156.911.4 (1.2) | 162.96.2 (1.3) | 179.08.9 (1.4) | 170.59.4 (1.3) | 163.88.6 (1.3) | 191.28.5 (1.5) | 177.410.3 (1.4) | 170.110.2 (1.3) | 175.010.2 (1.4) | 204.115.4 (1.6) | 175.010.0 (1.4) | 222.85.3 (1.7) | 150.07.9 (1.2) | 276.711.5 (2.1) | 154.97.6 (1.2) | 163.46.9 (1.3) | 165.87.6 (1.3) | 182.19.6 (1.4) | 259.112.9 (2.0) | 178.58.5 (1.4) | 184.79.1 (1.4) | 165.99.5 (1.3) | 187.99.7 (1.5) | 158.310.0 (1.2) | 203.810.5 (1.6) | 206.18.7 (1.6) | 169.914.7 (1.3) | 235.011.0 (1.8) | 237.117.8 (1.8) | 218.213.6 (1.7) | 181.511.0 (1.4) | 342.426.4 (2.6) | 197.411.1 (1.5) | 384.719.0 (3.0) | 145.35.7 (1.1) | 447.214.3 (3.5) | 214.518.9 (1.7) | 326.616.2 (2.5) | 382.812.7 (3.0) | 161.510.6 (1.2) | 923.2105.7 (7.1) | 148.95.9 (1.2) | 404.19.5 (3.1) |
replace all rows Duration for updating all 1000 rows of the table (with 5 warmup iterations). | 138.04.1 (1.0) | 141.02.7 (1.0) | 141.42.2 (1.0) | 145.82.6 (1.1) | 138.82.5 (1.0) | 141.23.0 (1.0) | 145.23.4 (1.1) | 145.12.9 (1.1) | 150.22.8 (1.1) | 158.46.4 (1.1) | 157.02.3 (1.1) | 145.54.1 (1.1) | 151.04.8 (1.1) | 171.79.0 (1.2) | 152.96.7 (1.1) | 164.06.7 (1.2) | 169.15.4 (1.2) | 174.75.3 (1.3) | 166.86.6 (1.2) | 156.61.9 (1.1) | 169.78.3 (1.2) | 156.83.0 (1.1) | 188.614.3 (1.4) | 216.98.7 (1.6) | 160.32.5 (1.2) | 243.34.6 (1.8) | 180.62.4 (1.3) | 194.43.6 (1.4) | 155.43.7 (1.1) | 161.56.2 (1.2) | 154.73.8 (1.1) | 160.62.8 (1.2) | 210.14.4 (1.5) | 156.72.1 (1.1) | 155.73.5 (1.1) | 153.43.7 (1.1) | 176.64.5 (1.3) | 152.73.6 (1.1) | 160.21.6 (1.2) | 164.33.4 (1.2) | 180.16.8 (1.3) | 176.95.5 (1.3) | 190.08.1 (1.4) | 204.86.9 (1.5) | 189.011.7 (1.4) | 220.36.1 (1.6) | 502.517.3 (3.6) | 228.64.9 (1.7) | 164.35.3 (1.2) | 411.86.2 (3.0) | 247.410.2 (1.8) | 277.511.7 (2.0) | 259.414.0 (1.9) | 216.88.0 (1.6) | 493.140.6 (3.6) | 418.67.5 (3.0) | 1,260.937.0 (9.1) |
partial update Time to update the text of every 10th row (with 5 warmup iterations) for a table with 10k rows. | 66.63.3 (1.0) | 66.93.0 (1.0) | 67.92.5 (1.0) | 67.42.8 (1.0) | 67.32.1 (1.0) | 68.42.2 (1.0) | 69.02.7 (1.0) | 77.92.8 (1.2) | 74.62.1 (1.1) | 83.43.3 (1.3) | 74.91.6 (1.1) | 83.83.1 (1.3) | 85.48.3 (1.3) | 83.73.2 (1.3) | 99.06.7 (1.5) | 69.64.3 (1.0) | 68.02.6 (1.0) | 80.42.5 (1.2) | 90.02.5 (1.4) | 90.73.0 (1.4) | 89.13.7 (1.3) | 97.93.5 (1.5) | 111.65.3 (1.7) | 76.72.9 (1.2) | 157.56.6 (2.4) | 79.22.9 (1.2) | 205.66.4 (3.1) | 78.32.0 (1.2) | 78.34.7 (1.2) | 70.82.7 (1.1) | 92.53.9 (1.4) | 66.41.4 (1.0) | 72.72.1 (1.1) | 84.85.9 (1.3) | 87.92.2 (1.3) | 137.36.1 (2.1) | 75.24.4 (1.1) | 67.13.0 (1.0) | 96.55.4 (1.5) | 79.42.0 (1.2) | 100.114.0 (1.5) | 109.24.6 (1.6) | 82.22.6 (1.2) | 90.74.0 (1.4) | 109.34.3 (1.6) | 131.25.9 (2.0) | 70.82.6 (1.1) | 140.55.5 (2.1) | 216.818.7 (3.3) | 458.58.1 (6.9) | 785.529.9 (11.8) | 71.42.0 (1.1) | 454.88.9 (6.9) | 2,071.524.4 (31.2) | 963.5328.5 (14.5) | 1,863.7353.9 (28.1) | 10,841.51471.3 (163.4) |
select row Duration to highlight a row in response to a click on the row. (with 5 warmup iterations). | 9.92.0 (1.0) | 10.03.4 (1.0) | 9.43.3 (1.0) | 10.21.9 (1.0) | 9.83.0 (1.0) | 10.42.0 (1.0) | 10.21.9 (1.0) | 10.82.2 (1.0) | 10.53.1 (1.0) | 10.42.6 (1.0) | 10.84.1 (1.0) | 8.34.7 (1.0) | 11.63.4 (1.0) | 10.03.9 (1.0) | 13.55.3 (1.0) | 8.63.9 (1.0) | 7.72.4 (1.0) | 11.53.2 (1.0) | 10.94.1 (1.0) | 9.12.8 (1.0) | 12.73.8 (1.0) | 18.524.5 (1.2) | 12.63.2 (1.0) | 11.41.5 (1.0) | 10.62.9 (1.0) | 10.73.6 (1.0) | 11.43.0 (1.0) | 11.22.7 (1.0) | 10.23.0 (1.0) | 8.23.4 (1.0) | 7.43.4 (1.0) | 10.03.4 (1.0) | 9.82.7 (1.0) | 9.33.3 (1.0) | 8.43.3 (1.0) | 12.04.4 (1.0) | 11.42.5 (1.0) | 8.93.3 (1.0) | 10.73.8 (1.0) | 10.23.8 (1.0) | 31.16.8 (1.9) | 15.13.7 (1.0) | 11.33.8 (1.0) | 10.53.3 (1.0) | 10.73.9 (1.0) | 10.42.0 (1.0) | 10.33.3 (1.0) | 10.74.1 (1.0) | 15.12.2 (1.0) | 9.93.0 (1.0) | 16.53.8 (1.0) | 10.22.6 (1.0) | 44.23.2 (2.8) | 26.30.6 (1.6) | 30.23.9 (1.9) | 128.620.0 (8.0) | 10.53.3 (1.0) |
swap rows Time to swap 2 rows on a 1K table. (with 5 warmup iterations). | 20.85.2 (1.2) | 17.43.6 (1.0) | 18.14.9 (1.1) | 19.15.6 (1.1) | 21.13.4 (1.2) | 22.24.4 (1.3) | 18.75.7 (1.1) | 21.14.0 (1.2) | 20.95.0 (1.2) | 17.14.5 (1.0) | 20.04.9 (1.2) | 19.14.5 (1.1) | 19.75.2 (1.2) | 17.84.2 (1.0) | 21.55.0 (1.3) | 20.94.8 (1.2) | 20.93.2 (1.2) | 19.43.0 (1.1) | 23.64.0 (1.4) | 22.33.8 (1.3) | 24.63.2 (1.4) | 22.23.2 (1.3) | 20.64.7 (1.2) | 20.84.0 (1.2) | 21.83.4 (1.3) | 20.44.8 (1.2) | 25.41.4 (1.5) | 20.04.5 (1.2) | 106.01.5 (6.2) | 109.81.8 (6.4) | 106.21.7 (6.2) | 108.61.5 (6.4) | 20.82.8 (1.2) | 108.81.8 (6.4) | 109.51.5 (6.4) | 108.82.1 (6.4) | 112.81.2 (6.6) | 105.71.7 (6.2) | 109.81.2 (6.4) | 112.12.3 (6.6) | 140.17.1 (8.2) | 118.84.0 (7.0) | 111.31.5 (6.5) | 112.72.0 (6.6) | 116.52.2 (6.8) | 115.31.4 (6.7) | 121.11.9 (7.1) | 118.82.7 (7.0) | 124.43.2 (7.3) | 20.74.3 (1.2) | 25.55.2 (1.5) | 113.53.1 (6.6) | 49.02.1 (2.9) | 127.61.4 (7.5) | 23.33.5 (1.4) | 223.614.2 (13.1) | 106.51.7 (6.2) |
remove row Duration to remove a row. (with 5 warmup iterations). | 48.40.6 (1.0) | 51.11.5 (1.1) | 48.91.1 (1.0) | 50.61.5 (1.1) | 50.51.0 (1.1) | 48.90.8 (1.0) | 50.51.3 (1.1) | 51.61.2 (1.1) | 49.21.6 (1.1) | 57.95.5 (1.2) | 48.01.3 (1.0) | 51.21.7 (1.1) | 50.50.9 (1.1) | 51.21.2 (1.1) | 59.36.0 (1.3) | 49.92.4 (1.1) | 51.41.3 (1.1) | 55.72.1 (1.2) | 60.67.4 (1.3) | 50.30.8 (1.1) | 65.09.5 (1.4) | 51.70.9 (1.1) | 57.85.2 (1.2) | 51.31.7 (1.1) | 57.03.4 (1.2) | 49.64.5 (1.1) | 49.91.2 (1.1) | 47.71.4 (1.0) | 53.02.8 (1.1) | 46.72.0 (1.0) | 49.12.2 (1.1) | 50.11.9 (1.1) | 57.51.1 (1.2) | 53.62.4 (1.1) | 53.33.9 (1.1) | 56.41.0 (1.2) | 49.20.8 (1.1) | 117.43.3 (2.5) | 54.11.4 (1.2) | 57.41.4 (1.2) | 65.36.9 (1.4) | 56.94.6 (1.2) | 55.50.8 (1.2) | 54.21.3 (1.2) | 128.61.9 (2.8) | 56.92.0 (1.2) | 131.22.2 (2.8) | 57.71.6 (1.2) | 132.34.0 (2.8) | 52.51.3 (1.1) | 65.75.7 (1.4) | 57.31.5 (1.2) | 103.04.2 (2.2) | 71.91.5 (1.5) | 166.435.1 (3.6) | 241.323.2 (5.2) | 114.51.5 (2.5) |
create many rows Duration to create 10,000 rows | 1,243.357.5 (1.0) | 1,331.434.6 (1.1) | 1,358.366.4 (1.1) | 1,334.637.2 (1.1) | 1,348.657.3 (1.1) | 1,300.641.8 (1.0) | 1,444.338.4 (1.2) | 1,361.450.7 (1.1) | 1,470.977.6 (1.2) | 1,366.048.9 (1.1) | 1,494.772.0 (1.2) | 1,397.641.5 (1.1) | 1,427.747.8 (1.1) | 1,823.855.8 (1.5) | 1,362.950.2 (1.1) | 1,505.468.0 (1.2) | 1,593.964.5 (1.3) | 1,783.2156.5 (1.4) | 1,579.641.1 (1.3) | 1,575.853.3 (1.3) | 1,696.748.0 (1.4) | 1,821.069.0 (1.5) | 1,663.937.3 (1.3) | 2,529.7133.1 (2.0) | 1,568.455.7 (1.3) | 2,321.222.2 (1.9) | 1,487.847.5 (1.2) | 2,061.841.6 (1.7) | 1,478.573.6 (1.2) | 1,524.068.1 (1.2) | 1,512.353.7 (1.2) | 1,569.761.3 (1.3) | 2,091.764.0 (1.7) | 1,854.744.3 (1.5) | 1,880.629.8 (1.5) | 1,482.769.2 (1.2) | 1,759.4105.5 (1.4) | 1,584.380.1 (1.3) | 1,900.546.3 (1.5) | 1,933.149.5 (1.6) | 1,455.957.0 (1.2) | 2,022.075.2 (1.6) | 2,117.959.7 (1.7) | 2,002.456.4 (1.6) | 1,924.958.1 (1.5) | 2,368.272.5 (1.9) | 1,968.155.1 (1.6) | 2,345.276.1 (1.9) | 1,480.042.2 (1.2) | 4,193.762.9 (3.4) | 2,317.063.2 (1.9) | 2,915.5146.8 (2.3) | 2,279.862.5 (1.8) | 1,511.239.3 (1.2) | 8,141.565.7 (6.5) | 1,533.042.0 (1.2) | 4,091.559.4 (3.3) |
append rows to large table Duration for adding 1000 rows on a table of 10,000 rows. | 212.711.5 (1.0) | 213.34.6 (1.0) | 212.85.7 (1.0) | 216.04.2 (1.0) | 218.35.8 (1.0) | 217.25.3 (1.0) | 218.55.2 (1.0) | 230.27.3 (1.1) | 229.64.6 (1.1) | 235.83.3 (1.1) | 229.54.7 (1.1) | 293.49.2 (1.4) | 243.44.8 (1.1) | 248.46.2 (1.2) | 254.39.0 (1.2) | 256.119.1 (1.2) | 245.813.2 (1.2) | 266.99.9 (1.3) | 238.15.8 (1.1) | 239.77.1 (1.1) | 257.26.9 (1.2) | 271.57.8 (1.3) | 268.020.7 (1.3) | 275.85.4 (1.3) | 342.212.2 (1.6) | 354.14.4 (1.7) | 424.97.2 (2.0) | 263.116.2 (1.2) | 266.05.2 (1.3) | 254.67.3 (1.2) | 260.37.0 (1.2) | 243.04.3 (1.1) | 322.77.1 (1.5) | 263.26.7 (1.2) | 263.46.4 (1.2) | 282.111.4 (1.3) | 271.314.7 (1.3) | 252.94.7 (1.2) | 277.57.7 (1.3) | 301.17.2 (1.4) | 256.76.4 (1.2) | 304.18.7 (1.4) | 317.94.9 (1.5) | 288.26.7 (1.4) | 353.19.4 (1.7) | 374.07.9 (1.8) | 269.23.1 (1.3) | 354.29.6 (1.7) | 497.134.9 (2.3) | 500.75.5 (2.4) | 1,160.154.0 (5.5) | 3,294.947.3 (15.5) | 757.742.2 (3.6) | 2,457.355.3 (11.6) | 650.8102.3 (3.1) | 2,157.8316.4 (10.1) | 1,669.315.5 (7.8) |
clear rows Duration to clear the table filled with 10.000 rows. | 142.73.2 (1.0) | 148.21.9 (1.1) | 141.21.6 (1.0) | 151.32.7 (1.1) | 150.22.3 (1.1) | 157.13.7 (1.1) | 161.92.4 (1.2) | 139.91.7 (1.0) | 147.11.6 (1.1) | 168.21.7 (1.2) | 182.71.3 (1.3) | 173.52.7 (1.2) | 179.92.3 (1.3) | 143.35.1 (1.0) | 164.25.0 (1.2) | 241.812.9 (1.7) | 209.26.2 (1.5) | 159.63.4 (1.1) | 155.13.7 (1.1) | 186.74.2 (1.3) | 178.55.0 (1.3) | 197.75.3 (1.4) | 221.93.8 (1.6) | 218.24.7 (1.6) | 195.14.7 (1.4) | 188.13.8 (1.3) | 160.92.3 (1.2) | 335.95.2 (2.4) | 190.82.1 (1.4) | 257.015.2 (1.8) | 210.82.8 (1.5) | 262.33.0 (1.9) | 349.28.4 (2.5) | 179.23.5 (1.3) | 179.02.5 (1.3) | 180.22.6 (1.3) | 248.55.7 (1.8) | 210.62.2 (1.5) | 180.43.9 (1.3) | 206.52.3 (1.5) | 155.96.4 (1.1) | 181.75.4 (1.3) | 243.54.5 (1.7) | 401.528.6 (2.9) | 198.33.3 (1.4) | 196.33.7 (1.4) | 199.03.3 (1.4) | 212.25.0 (1.5) | 270.54.7 (1.9) | 237.65.6 (1.7) | 274.15.6 (2.0) | 430.88.7 (3.1) | 241.35.8 (1.7) | 281.06.7 (2.0) | 994.427.1 (7.1) | 165.66.1 (1.2) | 414.64.3 (3.0) |
slowdown geometric mean | 1.03 | 1.03 | 1.03 | 1.06 | 1.06 | 1.08 | 1.09 | 1.10 | 1.11 | 1.13 | 1.14 | 1.14 | 1.15 | 1.17 | 1.19 | 1.20 | 1.20 | 1.21 | 1.22 | 1.22 | 1.29 | 1.29 | 1.32 | 1.36 | 1.37 | 1.39 | 1.40 | 1.40 | 1.41 | 1.44 | 1.46 | 1.46 | 1.47 | 1.48 | 1.50 | 1.53 | 1.53 | 1.54 | 1.55 | 1.57 | 1.65 | 1.66 | 1.68 | 1.76 | 1.82 | 1.90 | 1.91 | 1.96 | 1.99 | 2.22 | 2.26 | 2.58 | 2.70 | 3.17 | 4.28 | 4.52 | 5.61 |
Startup metrics
Name | vanillajs-keyed | surplus-v0.5.3-keyed | vanillajs-wc-keyed | solid-js-v0.0.11-keyed | ivi-v0.13.0-keyed | inferno-v5.3.0-keyed | ko-jsx-v3.4.2-keyed | domvm-v3.4.3-keyed | petit-dom-v0.2.0-keyed | bobril-v8.11.2-keyed | dio-v9.1.1-keyed | attodom-v0.6.1-keyed | nervjs-v1.3.2-keyed | maik-h-v2.5.2-keyed | vidom-v0.9.8-keyed | angular-optimized-v6.1.0-keyed | aurelia-v1.3.0-keyed | hyperhtml-v2.12.0-keyed | etch-v0.14.0-keyed | marionette-v4.0.0-beta.1-keyed | elm-v0.18.0-keyed | preact-v8.2.6-keyed | plastiq-v1.33.0-keyed | datum-v0.10.0-keyed | vue-v2.5.16-keyed | svelte-v1.58.5-keyed | apprun-v1.8.3-keyed | binding.scala-v10.0.1-keyed | redom-v3.12.7-keyed | angular-noopzone-v6.1.0-keyed | marko-v4.12.3-keyed | angular-v6.1.0-keyed | ractive-v0.10.1-keyed | react-v16.4.1-keyed | react-redux-combiner-v16.1.0 + 0.4.1-keyed | mithril-v1.1.1-keyed | angular-ivy-v6.1.0-keyed | angular-light-v0.14.1-keyed | react-redux-v16.1.0 + 3.7.2-keyed | react-easy-state-v16.1.0 + 5.0.0-keyed | maquette-v3.3.0-keyed | reagent-v0.8-keyed | react-mobX-v16.1.0 + 3.3.1-keyed | angularjs-v1.7.2-keyed | lit-html-v0.10.2-keyed | glimmer-v0.9.1-keyed | nx-v1.0.0-beta.2.0.1-keyed | ember-v3.0.0-keyed | hyperapp-v1.2.0-keyed | marionette-jquery-v4.0.0-beta.1-keyed | dojo2-v2.0.0-keyed | knockout-v3.4.1-keyed | miso-v0.18.0.0-keyed | react-lite-v0.15.30-keyed | reflex-dom-v0.4-keyed | choo-v6.13.0-keyed | rx-domh-rxjs-v0.0.2-keyed |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
consistently interactive a pessimistic TTI - when the CPU and network are both definitely very idle. (no more CPU tasks over 50ms) | 65.20.6 (1.0) | 68.72.5 (1.1) | 65.30.8 (1.0) | 69.00.7 (1.1) | 66.50.5 (1.0) | 67.40.7 (1.0) | 75.51.5 (1.2) | 67.70.7 (1.0) | 65.80.6 (1.0) | 70.70.9 (1.1) | 69.01.2 (1.1) | 65.70.9 (1.0) | 69.20.8 (1.1) | 70.50.6 (1.1) | 71.21.0 (1.1) | 94.02.3 (1.4) | 189.82.4 (2.9) | 72.40.7 (1.1) | 70.21.1 (1.1) | 77.40.9 (1.2) | 81.54.2 (1.2) | 67.70.9 (1.0) | 70.60.8 (1.1) | 71.51.0 (1.1) | 77.91.0 (1.2) | 66.10.8 (1.0) | 67.70.9 (1.0) | 113.51.6 (1.7) | 66.61.0 (1.0) | 94.52.5 (1.4) | 71.41.1 (1.1) | 134.61.3 (2.1) | 92.95.5 (1.4) | 80.81.0 (1.2) | 101.15.4 (1.6) | 68.01.1 (1.0) | 82.14.3 (1.3) | 78.50.7 (1.2) | 96.64.2 (1.5) | 83.70.9 (1.3) | 68.20.9 (1.0) | 103.62.5 (1.6) | 96.11.7 (1.5) | 106.01.0 (1.6) | 69.63.3 (1.1) | 95.41.1 (1.5) | 79.71.5 (1.2) | 215.03.9 (3.3) | 77.74.6 (1.2) | 90.00.8 (1.4) | 84.81.7 (1.3) | 78.60.9 (1.2) | 165.81.8 (2.5) | 72.60.6 (1.1) | 329.62.9 (5.1) | 78.41.4 (1.2) | 114.32.3 (1.8) |
script bootup time the total ms required to parse/compile/evaluate all the page's scripts | 4.60.1 (1.0) | 8.30.7 (1.0) | 2.80.3 (1.0) | 8.50.6 (1.0) | 2.60.1 (1.0) | 7.80.3 (1.0) | 12.70.4 (1.0) | 6.60.4 (1.0) | 7.10.5 (1.0) | 10.10.5 (1.0) | 9.40.4 (1.0) | 5.20.1 (1.0) | 9.60.3 (1.0) | 10.70.4 (1.0) | 11.30.3 (1.0) | 17.50.5 (1.1) | 10.40.7 (1.0) | 10.60.5 (1.0) | 9.60.7 (1.0) | 17.20.4 (1.1) | 12.10.9 (1.0) | 8.70.4 (1.0) | 10.00.3 (1.0) | 10.80.5 (1.0) | 16.70.4 (1.0) | 5.80.4 (1.0) | 8.50.3 (1.0) | 34.70.9 (2.2) | 6.70.4 (1.0) | 17.80.5 (1.1) | 12.00.4 (1.0) | 55.00.7 (3.4) | 25.30.7 (1.6) | 19.80.4 (1.2) | 35.10.6 (2.2) | 8.50.4 (1.0) | 15.31.2 (1.0) | 24.90.3 (1.6) | 31.20.5 (1.9) | 20.90.3 (1.3) | 6.30.3 (1.0) | 36.30.9 (2.3) | 31.10.7 (1.9) | 37.10.5 (2.3) | 9.10.4 (1.0) | 15.30.6 (1.0) | 9.20.6 (1.0) | 70.00.7 (4.4) | 6.60.4 (1.0) | 28.70.5 (1.8) | 22.30.5 (1.4) | 17.50.4 (1.1) | 20.90.5 (1.3) | 11.60.4 (1.0) | 137.222.6 (8.6) | 19.10.4 (1.2) | 43.31.1 (2.7) |
main thread work cost total amount of time spent doing work on the main thread. includes style/layout/etc. | 163.11.4 (1.0) | 167.52.1 (1.0) | 161.61.3 (1.0) | 166.91.4 (1.0) | 160.21.5 (1.0) | 165.71.2 (1.0) | 173.42.0 (1.1) | 164.81.5 (1.0) | 165.61.0 (1.0) | 166.30.7 (1.0) | 165.91.5 (1.0) | 163.61.1 (1.0) | 167.12.0 (1.0) | 168.81.0 (1.1) | 167.61.4 (1.0) | 184.61.4 (1.2) | 198.92.0 (1.2) | 169.11.9 (1.1) | 167.51.3 (1.0) | 175.91.1 (1.1) | 170.40.8 (1.1) | 166.51.8 (1.0) | 166.72.4 (1.0) | 170.61.7 (1.1) | 176.51.4 (1.1) | 164.21.1 (1.0) | 166.71.5 (1.0) | 196.01.6 (1.2) | 165.21.0 (1.0) | 184.61.9 (1.2) | 168.81.8 (1.1) | 229.81.9 (1.4) | 184.82.2 (1.2) | 180.41.9 (1.1) | 193.02.8 (1.2) | 166.51.7 (1.0) | 180.93.0 (1.1) | 177.31.8 (1.1) | 189.92.8 (1.2) | 181.12.5 (1.1) | 164.21.1 (1.0) | 195.02.7 (1.2) | 187.91.6 (1.2) | 198.51.2 (1.2) | 167.71.5 (1.0) | 189.82.2 (1.2) | 177.81.4 (1.1) | 233.93.3 (1.5) | 163.01.8 (1.0) | 188.21.5 (1.2) | 183.22.6 (1.1) | 177.41.6 (1.1) | 183.32.7 (1.1) | 172.62.0 (1.1) | 321.522.6 (2.0) | 177.61.8 (1.1) | 204.02.9 (1.3) |
total byte weight network transfer cost (post-compression) of all the resources loaded into the page. | 166,672.00.0 (1.0) | 170,548.00.0 (1.0) | 167,693.00.0 (1.0) | 180,293.00.0 (1.1) | 172,974.00.0 (1.1) | 181,974.00.0 (1.1) | 253,666.00.0 (1.6) | 196,175.00.0 (1.2) | 168,910.00.0 (1.0) | 205,394.00.0 (1.3) | 190,791.00.0 (1.2) | 163,119.00.0 (1.0) | 191,922.00.0 (1.2) | 179,432.00.0 (1.1) | 198,580.00.0 (1.2) | 347,624.00.0 (2.1) | 465,701.00.0 (2.9) | 175,129.00.0 (1.1) | 181,025.00.0 (1.1) | 246,525.00.0 (1.5) | 400,554.00.0 (2.5) | 171,797.00.0 (1.1) | 188,167.00.0 (1.2) | 184,781.00.0 (1.1) | 231,616.00.0 (1.4) | 167,203.00.0 (1.0) | 173,723.00.0 (1.1) | 449,268.00.0 (2.8) | 167,294.00.0 (1.0) | 343,179.00.0 (2.1) | 197,387.00.0 (1.2) | 381,668.00.0 (2.3) | 385,001.00.0 (2.4) | 268,086.00.0 (1.6) | 316,355.00.0 (1.9) | 190,103.00.0 (1.2) | 201,601.00.0 (1.2) | 227,134.00.0 (1.4) | 345,122.00.0 (2.1) | 267,591.00.0 (1.6) | 202,552.00.0 (1.2) | 412,208.00.0 (2.5) | 337,900.00.0 (2.1) | 344,739.00.0 (2.1) | 170,436.00.0 (1.0) | 244,559.00.0 (1.5) | 256,792.00.0 (1.6) | 749,755.00.0 (4.6) | 164,672.00.0 (1.0) | 330,583.00.0 (2.0) | 216,281.00.0 (1.3) | 222,504.00.0 (1.4) | 1,326,307.00.0 (8.1) | 194,887.00.0 (1.2) | 3,249,822.00.0 (19.9) | 186,480.00.0 (1.1) | 487,158.00.0 (3.0) |
Memory allocation in MBs ± standard deviation
Name | vanillajs-keyed | surplus-v0.5.3-keyed | vanillajs-wc-keyed | solid-js-v0.0.11-keyed | ivi-v0.13.0-keyed | inferno-v5.3.0-keyed | ko-jsx-v3.4.2-keyed | domvm-v3.4.3-keyed | petit-dom-v0.2.0-keyed | bobril-v8.11.2-keyed | dio-v9.1.1-keyed | attodom-v0.6.1-keyed | nervjs-v1.3.2-keyed | maik-h-v2.5.2-keyed | vidom-v0.9.8-keyed | angular-optimized-v6.1.0-keyed | aurelia-v1.3.0-keyed | hyperhtml-v2.12.0-keyed | etch-v0.14.0-keyed | marionette-v4.0.0-beta.1-keyed | elm-v0.18.0-keyed | preact-v8.2.6-keyed | plastiq-v1.33.0-keyed | datum-v0.10.0-keyed | vue-v2.5.16-keyed | svelte-v1.58.5-keyed | apprun-v1.8.3-keyed | binding.scala-v10.0.1-keyed | redom-v3.12.7-keyed | angular-noopzone-v6.1.0-keyed | marko-v4.12.3-keyed | angular-v6.1.0-keyed | ractive-v0.10.1-keyed | react-v16.4.1-keyed | react-redux-combiner-v16.1.0 + 0.4.1-keyed | mithril-v1.1.1-keyed | angular-ivy-v6.1.0-keyed | angular-light-v0.14.1-keyed | react-redux-v16.1.0 + 3.7.2-keyed | react-easy-state-v16.1.0 + 5.0.0-keyed | maquette-v3.3.0-keyed | reagent-v0.8-keyed | react-mobX-v16.1.0 + 3.3.1-keyed | angularjs-v1.7.2-keyed | lit-html-v0.10.2-keyed | glimmer-v0.9.1-keyed | nx-v1.0.0-beta.2.0.1-keyed | ember-v3.0.0-keyed | hyperapp-v1.2.0-keyed | marionette-jquery-v4.0.0-beta.1-keyed | dojo2-v2.0.0-keyed | knockout-v3.4.1-keyed | miso-v0.18.0.0-keyed | react-lite-v0.15.30-keyed | reflex-dom-v0.4-keyed | choo-v6.13.0-keyed | rx-domh-rxjs-v0.0.2-keyed |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
ready memory Memory usage after page load. | 2.40.1 (1.0) | 2.80.2 (1.2) | 2.30.1 (1.0) | 2.80.2 (1.2) | 2.60.1 (1.1) | 2.80.2 (1.2) | 3.00.1 (1.3) | 2.60.1 (1.1) | 2.50.1 (1.1) | 2.90.2 (1.2) | 2.90.2 (1.2) | 2.70.2 (1.2) | 2.90.2 (1.2) | 2.80.2 (1.2) | 2.90.2 (1.2) | 3.80.2 (1.6) | 5.00.1 (2.1) | 2.80.2 (1.2) | 2.60.1 (1.1) | 3.30.2 (1.4) | 3.10.2 (1.4) | 2.80.2 (1.2) | 2.90.2 (1.2) | 2.80.2 (1.2) | 3.10.2 (1.3) | 2.50.1 (1.1) | 2.80.2 (1.2) | 5.00.2 (2.1) | 2.60.1 (1.1) | 3.80.1 (1.6) | 3.00.2 (1.3) | 6.50.0 (2.8) | 3.50.2 (1.5) | 3.20.2 (1.4) | 3.90.2 (1.7) | 2.60.1 (1.1) | 3.00.1 (1.3) | 3.10.2 (1.3) | 3.80.2 (1.6) | 3.40.2 (1.5) | 2.80.2 (1.2) | 3.90.2 (1.7) | 4.00.1 (1.7) | 3.80.2 (1.7) | 2.60.1 (1.1) | 3.60.2 (1.5) | 3.10.2 (1.3) | 7.00.1 (3.0) | 2.70.2 (1.2) | 3.80.2 (1.6) | 3.20.2 (1.4) | 3.20.1 (1.4) | 7.00.1 (3.0) | 3.00.2 (1.3) | 11.30.1 (4.9) | 2.90.2 (1.3) | 4.20.2 (1.8) |
run memory Memory usage after adding 1000 rows. | 3.00.1 (1.0) | 4.10.1 (1.3) | 3.10.1 (1.0) | 4.50.1 (1.5) | 4.90.0 (1.6) | 5.10.0 (1.7) | 12.20.0 (4.0) | 5.00.0 (1.7) | 5.30.0 (1.8) | 5.50.0 (1.8) | 6.60.0 (2.2) | 3.20.2 (1.1) | 5.50.1 (1.8) | 9.40.0 (3.1) | 5.40.0 (1.8) | 6.40.0 (2.1) | 9.00.0 (3.0) | 5.50.0 (1.8) | 6.80.0 (2.3) | 5.10.0 (1.7) | 7.10.0 (2.4) | 5.60.0 (1.8) | 7.90.2 (2.6) | 11.70.0 (3.9) | 7.50.0 (2.5) | 4.10.0 (1.4) | 4.20.1 (1.4) | 18.00.0 (6.0) | 4.40.0 (1.5) | 6.50.0 (2.2) | 6.30.1 (2.1) | 10.30.0 (3.4) | 15.40.0 (5.1) | 7.00.0 (2.3) | 7.80.0 (2.6) | 6.20.0 (2.1) | 7.80.0 (2.6) | 5.90.1 (1.9) | 8.10.0 (2.7) | 8.60.0 (2.9) | 4.90.0 (1.6) | 8.30.0 (2.7) | 11.00.0 (3.6) | 11.30.0 (3.8) | 7.10.0 (2.4) | 12.80.0 (4.3) | 8.00.0 (2.6) | 16.00.0 (5.3) | 5.20.1 (1.7) | 6.30.0 (2.1) | 13.60.0 (4.5) | 22.60.0 (7.5) | 13.80.0 (4.6) | 12.90.0 (4.3) | 40.10.0 (13.3) | 4.00.1 (1.3) | 7.30.0 (2.4) |
update eatch 10th row for 1k rows (5 cycles) Memory usage after clicking update every 10th row 5 times | 3.00.1 (1.0) | 4.10.1 (1.3) | 3.10.1 (1.0) | 4.50.1 (1.5) | 4.90.0 (1.6) | 5.10.0 (1.7) | 12.20.0 (4.0) | 5.20.0 (1.7) | 5.60.0 (1.9) | 5.70.0 (1.9) | 6.70.0 (2.2) | 3.30.1 (1.1) | 5.70.0 (1.9) | 9.70.0 (3.2) | 5.50.0 (1.8) | 6.50.0 (2.2) | 9.00.0 (3.0) | 5.60.0 (1.8) | 7.30.0 (2.4) | 5.30.0 (1.8) | 7.20.0 (2.4) | 5.70.0 (1.9) | 10.10.0 (3.3) | 11.90.1 (3.9) | 7.60.0 (2.5) | 4.40.0 (1.4) | 4.50.0 (1.5) | 18.00.0 (6.0) | 4.70.0 (1.6) | 6.60.0 (2.2) | 6.50.0 (2.2) | 10.30.0 (3.4) | 15.40.0 (5.1) | 8.00.0 (2.6) | 8.70.0 (2.9) | 8.50.0 (2.8) | 7.90.0 (2.6) | 6.00.0 (2.0) | 9.20.0 (3.0) | 9.30.0 (3.1) | 5.00.0 (1.6) | 9.60.0 (3.2) | 11.60.0 (3.8) | 11.40.0 (3.8) | 7.50.0 (2.5) | 13.00.0 (4.3) | 8.00.0 (2.6) | 16.10.0 (5.3) | 5.60.1 (1.9) | 6.30.0 (2.1) | 14.10.0 (4.7) | 22.70.0 (7.5) | 19.20.0 (6.3) | 7.30.0 (2.4) | 45.20.1 (14.9) | 4.60.0 (1.5) | 7.40.0 (2.5) |
replace 1k rows (5 cycles) Memory usage after clicking create 1000 rows 5 times | 3.20.1 (1.0) | 4.10.1 (1.3) | 3.40.1 (1.0) | 4.80.1 (1.5) | 4.90.0 (1.5) | 5.20.0 (1.6) | 6.60.1 (2.0) | 5.20.0 (1.6) | 5.60.0 (1.7) | 5.60.0 (1.7) | 6.70.0 (2.1) | 3.40.1 (1.1) | 5.50.0 (1.7) | 9.90.0 (3.1) | 5.60.0 (1.7) | 6.80.0 (2.1) | 9.30.0 (2.9) | 5.80.1 (1.8) | 7.30.0 (2.2) | 5.70.0 (1.7) | 7.40.1 (2.3) | 8.30.0 (2.6) | 25.80.1 (8.0) | 12.10.0 (3.8) | 7.60.0 (2.3) | 4.40.1 (1.4) | 9.60.0 (3.0) | 18.60.0 (5.8) | 6.30.1 (2.0) | 6.90.0 (2.1) | 6.40.1 (2.0) | 10.60.0 (3.3) | 15.90.0 (4.9) | 8.30.0 (2.6) | 9.00.0 (2.8) | 6.50.1 (2.0) | 8.10.0 (2.5) | 6.10.1 (1.9) | 10.40.0 (3.2) | 12.20.0 (3.8) | 5.00.0 (1.6) | 10.20.0 (3.2) | 17.70.0 (5.5) | 11.90.0 (3.7) | 7.60.1 (2.3) | 13.20.0 (4.1) | 10.00.0 (3.1) | 17.10.0 (5.3) | 5.30.0 (1.6) | 7.00.0 (2.1) | 14.20.0 (4.4) | 14.30.0 (4.4) | 14.60.0 (4.5) | 7.40.0 (2.3) | 86.31.4 (26.7) | 3.90.0 (1.2) | 7.50.0 (2.3) |
creating/clearing 1k rows (5 cycles) Memory usage after creating and clearing 1000 rows 5 times | 2.90.0 (1.1) | 3.00.0 (1.1) | 2.60.0 (1.0) | 3.10.0 (1.2) | 2.80.0 (1.0) | 3.00.0 (1.1) | 3.30.0 (1.2) | 2.80.0 (1.1) | 2.90.0 (1.1) | 3.10.0 (1.2) | 3.10.0 (1.2) | 2.90.0 (1.1) | 3.10.0 (1.2) | 3.30.0 (1.2) | 3.10.0 (1.2) | 4.30.0 (1.6) | 6.20.0 (2.4) | 3.30.0 (1.3) | 3.10.0 (1.2) | 3.80.0 (1.4) | 3.60.0 (1.4) | 5.70.0 (2.2) | 25.50.0 (9.7) | 3.20.0 (1.2) | 3.40.0 (1.3) | 2.90.0 (1.1) | 8.20.0 (3.1) | 5.80.0 (2.2) | 4.70.0 (1.8) | 4.30.0 (1.7) | 3.30.0 (1.3) | 6.90.0 (2.6) | 5.20.0 (2.0) | 4.20.0 (1.6) | 4.90.0 (1.9) | 3.10.0 (1.2) | 3.40.0 (1.3) | 3.50.0 (1.3) | 5.40.0 (2.1) | 5.80.0 (2.2) | 3.00.0 (1.2) | 5.30.0 (2.0) | 7.90.0 (3.0) | 4.30.0 (1.6) | 3.20.0 (1.2) | 9.50.0 (3.6) | 4.90.2 (1.9) | 8.50.0 (3.2) | 3.00.0 (1.1) | 4.50.0 (1.7) | 4.00.0 (1.5) | 4.00.1 (1.5) | 14.30.0 (5.4) | 3.40.0 (1.3) | 64.70.4 (24.6) | 3.10.0 (1.2) | 4.60.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 | domc-v0.0.2-non-keyed | surplus-v0.5.3-non-keyed | inferno-v5.3.0-non-keyed | domvm-v3.4.3-non-keyed | moon-v0.11.0-non-keyed | dio-v9.1.1-non-keyed | redom-v3.12.7-non-keyed | maik-h-v2.5.2-non-keyed | san-v3.6.3-non-keyed | angular-v6.1.0-non-keyed | simulacra-v2.1.5-non-keyed | aurelia-v1.3.0-non-keyed | slim-js-v3.3.0-non-keyed | react-v16.4.1-non-keyed | svelte-v1.58.5-non-keyed | etch-v0.14.0-non-keyed | nx-v1.0.0-beta.2.0.1-non-keyed | lit-html-v0.10.2-non-keyed | vue-v2.5.16-non-keyed | ractive-v0.10.1-non-keyed | vuera-v0.2.2-non-keyed | apprun-v1.8.3-non-keyed | cyclejs-dom-v20.4.0-non-keyed | riot-v3.11.1-non-keyed | gruu-v1.7.3-non-keyed | hyperapp-v1.2.0-non-keyed | stem-v0.2.70-non-keyed | polymer-v2.0.0-non-keyed | tsers-v1.0.0-non-keyed | rivets-v0.9.6-non-keyed | halogen-non-keyed | dojo2-v2.0.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. | 130.44.0 (1.0) | 130.55.3 (1.0) | 130.15.2 (1.0) | 145.66.5 (1.1) | 154.85.6 (1.2) | 140.37.4 (1.1) | 165.38.6 (1.3) | 155.77.8 (1.2) | 175.510.9 (1.3) | 159.87.2 (1.2) | 181.17.9 (1.4) | 157.18.5 (1.2) | 181.17.9 (1.4) | 200.99.6 (1.5) | 176.511.5 (1.4) | 217.36.4 (1.7) | 176.113.9 (1.4) | 199.711.3 (1.5) | 183.611.5 (1.4) | 177.48.7 (1.4) | 249.412.4 (1.9) | 182.28.0 (1.4) | 150.88.2 (1.2) | 161.96.7 (1.2) | 231.513.2 (1.8) | 184.612.4 (1.4) | 148.06.4 (1.1) | 209.415.5 (1.6) | 207.910.7 (1.6) | 239.313.1 (1.8) | 371.19.1 (2.9) | 256.813.7 (2.0) | 218.618.0 (1.7) | 489.622.8 (3.8) | 697.027.4 (5.4) |
replace all rows Duration for updating all 1000 rows of the table (with 5 warmup iterations). | 56.13.1 (1.0) | 55.65.1 (1.0) | 54.03.1 (1.0) | 56.72.2 (1.0) | 57.82.1 (1.1) | 58.93.6 (1.1) | 59.02.4 (1.1) | 57.63.4 (1.1) | 59.31.5 (1.1) | 63.22.4 (1.2) | 55.31.2 (1.0) | 58.12.8 (1.1) | 66.61.3 (1.2) | 58.51.6 (1.1) | 59.82.6 (1.1) | 56.53.5 (1.0) | 73.95.7 (1.4) | 63.62.0 (1.2) | 59.61.9 (1.1) | 62.01.5 (1.1) | 61.01.0 (1.1) | 63.12.1 (1.2) | 65.81.3 (1.2) | 65.83.4 (1.2) | 59.01.0 (1.1) | 98.42.1 (1.8) | 67.53.0 (1.2) | 209.32.3 (3.9) | 62.51.4 (1.2) | 93.73.0 (1.7) | 92.51.2 (1.7) | 84.84.3 (1.6) | 87.95.9 (1.6) | 128.74.6 (2.4) | 215.66.4 (4.0) |
partial update Time to update the text of every 10th row (with 5 warmup iterations) for a table with 10k rows. | 67.53.2 (1.0) | 68.84.3 (1.0) | 70.31.5 (1.0) | 70.22.1 (1.0) | 76.82.8 (1.1) | 104.93.6 (1.6) | 74.92.9 (1.1) | 78.13.1 (1.2) | 84.33.6 (1.3) | 73.93.5 (1.1) | 67.63.0 (1.0) | 67.62.2 (1.0) | 68.72.2 (1.0) | 77.22.4 (1.1) | 84.04.6 (1.2) | 67.32.6 (1.0) | 97.012.3 (1.4) | 72.62.4 (1.1) | 100.32.0 (1.5) | 164.113.7 (2.4) | 72.42.1 (1.1) | 166.517.6 (2.5) | 204.05.5 (3.0) | 188.97.6 (2.8) | 150.04.7 (2.2) | 168.48.1 (2.5) | 204.716.9 (3.0) | 102.44.0 (1.5) | 435.541.1 (6.5) | 207.85.3 (3.1) | 140.5184.4 (2.1) | 397.56.6 (5.9) | 780.339.0 (11.6) | 801.36.7 (11.9) | 1,682.550.3 (25.0) |
select row Duration to highlight a row in response to a click on the row. (with 5 warmup iterations). | 11.33.7 (1.0) | 10.13.4 (1.0) | 11.10.8 (1.0) | 8.33.8 (1.0) | 8.74.1 (1.0) | 11.53.4 (1.0) | 9.14.4 (1.0) | 14.46.0 (1.0) | 8.13.8 (1.0) | 10.82.1 (1.0) | 9.22.4 (1.0) | 10.13.9 (1.0) | 9.64.3 (1.0) | 12.84.2 (1.0) | 9.62.6 (1.0) | 9.23.5 (1.0) | 12.43.3 (1.0) | 12.13.5 (1.0) | 10.04.3 (1.0) | 12.02.3 (1.0) | 11.02.4 (1.0) | 12.53.2 (1.0) | 11.61.9 (1.0) | 13.63.1 (1.0) | 11.23.2 (1.0) | 11.02.6 (1.0) | 14.72.6 (1.0) | 10.42.0 (1.0) | 10.01.8 (1.0) | 15.41.8 (1.0) | 9.73.2 (1.0) | 30.43.3 (1.9) | 11.32.0 (1.0) | 64.01.9 (4.0) | 156.526.2 (9.8) |
swap rows Time to swap 2 rows on a 1K table. (with 5 warmup iterations). | 12.94.3 (1.0) | 16.93.8 (1.1) | 15.94.2 (1.0) | 14.34.5 (1.0) | 13.64.8 (1.0) | 16.34.7 (1.0) | 17.22.5 (1.1) | 16.34.1 (1.0) | 14.24.5 (1.0) | 16.64.6 (1.0) | 12.93.5 (1.0) | 15.44.3 (1.0) | 14.85.0 (1.0) | 15.13.7 (1.0) | 15.75.0 (1.0) | 15.24.9 (1.0) | 17.24.2 (1.1) | 10.73.8 (1.0) | 12.83.1 (1.0) | 14.72.7 (1.0) | 14.75.2 (1.0) | 15.62.7 (1.0) | 17.60.7 (1.1) | 17.12.4 (1.1) | 15.53.7 (1.0) | 15.24.1 (1.0) | 21.32.8 (1.3) | 15.74.3 (1.0) | 14.03.1 (1.0) | 19.31.0 (1.2) | 15.34.8 (1.0) | 32.72.2 (2.0) | 18.34.5 (1.1) | 68.11.7 (4.3) | 152.66.4 (9.5) |
remove row Duration to remove a row. (with 5 warmup iterations). | 30.50.6 (1.1) | 28.11.2 (1.0) | 30.40.5 (1.1) | 32.63.0 (1.2) | 35.11.2 (1.2) | 34.33.1 (1.2) | 35.30.9 (1.3) | 35.40.8 (1.3) | 34.20.6 (1.2) | 48.11.7 (1.7) | 31.53.5 (1.1) | 50.22.6 (1.8) | 41.31.6 (1.5) | 37.01.1 (1.3) | 37.31.2 (1.3) | 28.50.7 (1.0) | 49.74.7 (1.8) | 43.21.3 (1.5) | 35.90.8 (1.3) | 40.22.3 (1.4) | 39.01.5 (1.4) | 39.62.6 (1.4) | 50.91.1 (1.8) | 47.22.3 (1.7) | 37.10.8 (1.3) | 53.93.7 (1.9) | 47.03.5 (1.7) | 54.41.3 (1.9) | 47.11.6 (1.7) | 54.01.2 (1.9) | 57.81.2 (2.1) | 61.62.8 (2.2) | 67.45.0 (2.4) | 104.02.9 (3.7) | 185.27.6 (6.6) |
create many rows Duration to create 10,000 rows | 1,271.058.7 (1.0) | 1,247.745.3 (1.0) | 1,258.947.9 (1.0) | 1,323.348.2 (1.1) | 1,356.049.8 (1.1) | 1,349.260.5 (1.1) | 1,533.470.6 (1.2) | 1,480.164.9 (1.2) | 1,797.668.1 (1.4) | 1,503.568.4 (1.2) | 1,580.954.6 (1.3) | 1,706.051.2 (1.4) | 1,623.957.8 (1.3) | 2,028.861.2 (1.6) | 1,862.436.1 (1.5) | 2,325.022.7 (1.9) | 1,624.148.3 (1.3) | 2,000.960.3 (1.6) | 1,914.048.2 (1.5) | 1,567.954.4 (1.3) | 2,057.556.7 (1.6) | 1,575.447.8 (1.3) | 1,475.050.3 (1.2) | 1,561.440.2 (1.3) | 2,336.360.6 (1.9) | 1,734.950.1 (1.4) | 1,462.848.9 (1.2) | 1,987.562.4 (1.6) | 2,148.965.1 (1.7) | 2,013.042.7 (1.6) | 3,277.7177.2 (2.6) | 2,188.051.9 (1.8) | 2,315.957.5 (1.9) | 4,089.293.9 (3.3) | 4,844.8119.4 (3.9) |
append rows to large table Duration for adding 1000 rows on a table of 10,000 rows. | 208.16.3 (1.0) | 219.04.4 (1.1) | 234.65.2 (1.1) | 217.76.0 (1.0) | 230.02.9 (1.1) | 257.47.9 (1.2) | 229.23.5 (1.1) | 263.74.2 (1.3) | 253.55.1 (1.2) | 228.53.3 (1.1) | 243.26.8 (1.2) | 225.86.0 (1.1) | 239.67.6 (1.2) | 264.05.7 (1.3) | 264.47.2 (1.3) | 310.95.2 (1.5) | 239.26.0 (1.1) | 272.64.7 (1.3) | 346.711.5 (1.7) | 340.710.7 (1.6) | 283.48.1 (1.4) | 344.47.4 (1.7) | 424.05.8 (2.0) | 356.97.3 (1.7) | 373.39.5 (1.8) | 344.628.3 (1.7) | 487.338.7 (2.3) | 252.67.7 (1.2) | 647.515.6 (3.1) | 451.029.9 (2.2) | 353.910.7 (1.7) | 593.551.7 (2.9) | 1,180.759.6 (5.7) | 1,126.810.6 (5.4) | 2,082.332.3 (10.0) |
clear rows Duration to clear the table filled with 10.000 rows. | 140.42.0 (1.0) | 147.42.6 (1.1) | 140.64.4 (1.0) | 157.42.1 (1.1) | 139.91.7 (1.0) | 160.31.9 (1.1) | 182.11.9 (1.3) | 181.02.7 (1.3) | 148.17.0 (1.1) | 161.75.9 (1.2) | 265.02.8 (1.9) | 192.21.9 (1.4) | 209.03.4 (1.5) | 162.33.1 (1.2) | 179.92.3 (1.3) | 185.23.8 (1.3) | 152.75.2 (1.1) | 209.317.4 (1.5) | 185.33.6 (1.3) | 193.26.4 (1.4) | 318.38.7 (2.3) | 198.85.9 (1.4) | 162.12.8 (1.2) | 229.83.8 (1.6) | 228.22.6 (1.6) | 181.63.7 (1.3) | 268.52.8 (1.9) | 403.614.1 (2.9) | 179.23.4 (1.3) | 279.06.1 (2.0) | 351.05.8 (2.5) | 267.95.5 (1.9) | 283.34.4 (2.0) | 526.117.4 (3.8) | 540.113.6 (3.9) |
slowdown geometric mean | 1.02 | 1.02 | 1.03 | 1.07 | 1.09 | 1.15 | 1.16 | 1.16 | 1.17 | 1.18 | 1.18 | 1.19 | 1.21 | 1.22 | 1.22 | 1.23 | 1.26 | 1.28 | 1.29 | 1.36 | 1.37 | 1.37 | 1.42 | 1.44 | 1.47 | 1.49 | 1.55 | 1.67 | 1.73 | 1.76 | 1.83 | 2.25 | 2.31 | 4.25 | 7.16 |
Startup metrics
Name | vanillajs-non-keyed | domc-v0.0.2-non-keyed | surplus-v0.5.3-non-keyed | inferno-v5.3.0-non-keyed | domvm-v3.4.3-non-keyed | moon-v0.11.0-non-keyed | dio-v9.1.1-non-keyed | redom-v3.12.7-non-keyed | maik-h-v2.5.2-non-keyed | san-v3.6.3-non-keyed | angular-v6.1.0-non-keyed | simulacra-v2.1.5-non-keyed | aurelia-v1.3.0-non-keyed | slim-js-v3.3.0-non-keyed | react-v16.4.1-non-keyed | svelte-v1.58.5-non-keyed | etch-v0.14.0-non-keyed | nx-v1.0.0-beta.2.0.1-non-keyed | lit-html-v0.10.2-non-keyed | vue-v2.5.16-non-keyed | ractive-v0.10.1-non-keyed | vuera-v0.2.2-non-keyed | apprun-v1.8.3-non-keyed | cyclejs-dom-v20.4.0-non-keyed | riot-v3.11.1-non-keyed | gruu-v1.7.3-non-keyed | hyperapp-v1.2.0-non-keyed | stem-v0.2.70-non-keyed | polymer-v2.0.0-non-keyed | tsers-v1.0.0-non-keyed | rivets-v0.9.6-non-keyed | halogen-non-keyed | dojo2-v2.0.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) | 64.10.5 (1.0) | 64.80.9 (1.0) | 67.21.5 (1.0) | 69.51.1 (1.1) | 67.91.1 (1.1) | 68.80.9 (1.1) | 70.01.4 (1.1) | 66.91.0 (1.0) | 70.41.6 (1.1) | 78.11.0 (1.2) | 135.01.4 (2.1) | 69.21.4 (1.1) | 189.23.4 (3.0) | 82.14.9 (1.3) | 81.11.0 (1.3) | 66.81.3 (1.0) | 70.80.7 (1.1) | 81.01.0 (1.3) | 68.50.7 (1.1) | 78.61.3 (1.2) | 96.16.8 (1.5) | 97.90.4 (1.5) | 67.51.4 (1.1) | 81.01.0 (1.3) | 74.31.0 (1.2) | 69.11.4 (1.1) | 74.05.7 (1.2) | 146.22.7 (2.3) | 113.11.9 (1.8) | 136.11.4 (2.1) | 74.81.5 (1.2) | 94.81.1 (1.5) | 84.40.8 (1.3) | 133.60.9 (2.1) | 142.21.9 (2.2) |
script bootup time the total ms required to parse/compile/evaluate all the page's scripts | 5.00.4 (1.0) | 2.80.1 (1.0) | 7.40.5 (1.0) | 9.40.4 (1.0) | 8.00.3 (1.0) | 9.20.5 (1.0) | 9.50.5 (1.0) | 6.70.4 (1.0) | 10.60.5 (1.0) | 18.20.4 (1.1) | 55.70.7 (3.5) | 8.40.4 (1.0) | 10.90.5 (1.0) | 15.70.8 (1.0) | 19.80.4 (1.2) | 5.60.3 (1.0) | 9.60.5 (1.0) | 11.90.5 (1.0) | 8.80.3 (1.0) | 17.00.7 (1.1) | 25.70.7 (1.6) | 33.70.5 (2.1) | 8.80.4 (1.0) | 19.60.2 (1.2) | 22.80.5 (1.4) | 9.30.5 (1.0) | 6.30.3 (1.0) | 73.18.4 (4.6) | 35.00.7 (2.2) | 57.70.3 (3.6) | 14.50.4 (1.0) | 26.80.6 (1.7) | 22.30.4 (1.4) | 55.50.8 (3.5) | 63.60.9 (4.0) |
main thread work cost total amount of time spent doing work on the main thread. includes style/layout/etc. | 164.42.3 (1.0) | 161.71.9 (1.0) | 166.71.7 (1.0) | 167.72.7 (1.0) | 166.51.3 (1.0) | 166.61.9 (1.0) | 168.11.6 (1.0) | 164.91.1 (1.0) | 171.21.8 (1.1) | 177.81.1 (1.1) | 229.61.8 (1.4) | 167.01.9 (1.0) | 200.52.6 (1.2) | 175.81.7 (1.1) | 180.42.1 (1.1) | 164.31.7 (1.0) | 167.51.1 (1.0) | 182.11.7 (1.1) | 167.61.3 (1.0) | 177.11.8 (1.1) | 183.71.8 (1.1) | 193.12.7 (1.2) | 167.12.1 (1.0) | 180.61.4 (1.1) | 173.61.9 (1.1) | 169.11.4 (1.0) | 163.21.0 (1.0) | 231.95.7 (1.4) | 194.41.9 (1.2) | 217.92.3 (1.3) | 173.71.7 (1.1) | 187.71.5 (1.2) | 183.92.0 (1.1) | 210.82.6 (1.3) | 220.53.7 (1.4) |
total byte weight network transfer cost (post-compression) of all the resources loaded into the page. | 166,724.00.0 (1.0) | 164,088.00.0 (1.0) | 170,533.00.0 (1.0) | 186,026.00.0 (1.1) | 172,146.00.0 (1.0) | 184,650.00.0 (1.1) | 190,792.00.0 (1.2) | 167,294.00.0 (1.0) | 179,410.00.0 (1.1) | 214,500.00.0 (1.3) | 381,663.00.0 (2.3) | 174,945.00.0 (1.1) | 465,883.00.0 (2.8) | 192,525.00.0 (1.2) | 268,097.00.0 (1.6) | 166,732.00.0 (1.0) | 181,030.00.0 (1.1) | 256,970.00.0 (1.6) | 169,582.00.0 (1.0) | 231,611.00.0 (1.4) | 384,860.00.0 (2.3) | 338,090.00.0 (2.1) | 173,717.00.0 (1.1) | 246,298.00.0 (1.5) | 189,087.00.0 (1.2) | 171,760.00.0 (1.0) | 164,666.00.0 (1.0) | 751,123.00.0 (4.6) | 371,501.00.0 (2.3) | 558,970.00.0 (3.4) | 190,940.00.0 (1.2) | 554,993.00.0 (3.4) | 216,293.00.0 (1.3) | 1,084,059.00.0 (6.6) | 1,082,647.00.0 (6.6) |
Memory allocation in MBs ± standard deviation
Name | vanillajs-non-keyed | domc-v0.0.2-non-keyed | surplus-v0.5.3-non-keyed | inferno-v5.3.0-non-keyed | domvm-v3.4.3-non-keyed | moon-v0.11.0-non-keyed | dio-v9.1.1-non-keyed | redom-v3.12.7-non-keyed | maik-h-v2.5.2-non-keyed | san-v3.6.3-non-keyed | angular-v6.1.0-non-keyed | simulacra-v2.1.5-non-keyed | aurelia-v1.3.0-non-keyed | slim-js-v3.3.0-non-keyed | react-v16.4.1-non-keyed | svelte-v1.58.5-non-keyed | etch-v0.14.0-non-keyed | nx-v1.0.0-beta.2.0.1-non-keyed | lit-html-v0.10.2-non-keyed | vue-v2.5.16-non-keyed | ractive-v0.10.1-non-keyed | vuera-v0.2.2-non-keyed | apprun-v1.8.3-non-keyed | cyclejs-dom-v20.4.0-non-keyed | riot-v3.11.1-non-keyed | gruu-v1.7.3-non-keyed | hyperapp-v1.2.0-non-keyed | stem-v0.2.70-non-keyed | polymer-v2.0.0-non-keyed | tsers-v1.0.0-non-keyed | rivets-v0.9.6-non-keyed | halogen-non-keyed | dojo2-v2.0.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.30.0 (1.0) | 2.70.2 (1.2) | 2.80.2 (1.2) | 2.60.2 (1.2) | 2.80.2 (1.2) | 2.90.2 (1.3) | 2.60.1 (1.1) | 2.70.1 (1.2) | 3.10.2 (1.4) | 6.50.0 (2.9) | 2.80.2 (1.2) | 5.00.1 (2.2) | 3.00.2 (1.3) | 3.20.2 (1.4) | 2.60.2 (1.2) | 2.70.2 (1.2) | 3.20.1 (1.4) | 2.60.1 (1.2) | 3.10.2 (1.4) | 3.50.2 (1.6) | 3.60.2 (1.6) | 2.80.2 (1.2) | 3.10.1 (1.4) | 3.00.2 (1.3) | 2.80.2 (1.2) | 2.70.2 (1.2) | 4.10.1 (1.8) | 3.30.2 (1.5) | 5.20.2 (2.3) | 2.80.1 (1.2) | 3.50.2 (1.6) | 3.20.2 (1.4) | 5.10.2 (2.2) | 5.20.2 (2.3) |
run memory Memory usage after adding 1000 rows. | 2.80.1 (1.0) | 3.10.1 (1.1) | 3.30.1 (1.2) | 5.10.0 (1.8) | 5.00.0 (1.8) | 6.10.0 (2.2) | 6.60.0 (2.4) | 4.40.0 (1.6) | 9.60.0 (3.5) | 6.80.0 (2.4) | 10.30.0 (3.7) | 8.10.0 (2.9) | 9.00.0 (3.2) | 10.70.0 (3.9) | 7.00.0 (2.5) | 4.10.0 (1.5) | 6.90.1 (2.5) | 8.00.0 (2.9) | 7.00.0 (2.5) | 7.50.0 (2.7) | 15.40.0 (5.5) | 8.00.0 (2.9) | 4.10.1 (1.5) | 5.90.0 (2.1) | 6.50.0 (2.3) | 6.80.0 (2.4) | 5.20.1 (1.9) | 8.50.0 (3.0) | 6.00.1 (2.1) | 11.30.0 (4.1) | 24.70.1 (8.9) | 18.90.0 (6.8) | 13.60.0 (4.9) | 15.30.0 (5.5) | 15.10.0 (5.4) |
update eatch 10th row for 1k rows (5 cycles) Memory usage after clicking update every 10th row 5 times | 3.00.1 (1.0) | 3.40.1 (1.1) | 3.30.1 (1.1) | 5.10.0 (1.7) | 5.10.0 (1.7) | 6.20.0 (2.1) | 6.70.0 (2.2) | 4.60.0 (1.5) | 9.70.0 (3.2) | 6.70.0 (2.2) | 10.30.0 (3.4) | 8.10.0 (2.7) | 9.00.0 (3.0) | 10.80.0 (3.6) | 8.00.0 (2.7) | 4.30.0 (1.4) | 7.30.0 (2.4) | 8.00.0 (2.7) | 7.40.0 (2.5) | 7.50.0 (2.5) | 15.40.0 (5.1) | 8.10.0 (2.7) | 4.50.0 (1.5) | 6.00.0 (2.0) | 6.60.0 (2.2) | 7.00.0 (2.3) | 5.60.1 (1.9) | 8.60.0 (2.9) | 6.20.0 (2.1) | 12.20.0 (4.1) | 24.80.1 (8.3) | 28.30.0 (9.4) | 14.10.0 (4.7) | 15.60.0 (5.2) | 15.40.0 (5.1) |
replace 1k rows (5 cycles) Memory usage after clicking create 1000 rows 5 times | 3.30.1 (1.0) | 3.40.1 (1.0) | 3.40.1 (1.0) | 5.10.0 (1.5) | 5.10.1 (1.5) | 6.20.0 (1.9) | 6.70.0 (2.0) | 4.70.0 (1.4) | 9.70.0 (2.9) | 6.90.0 (2.1) | 10.30.0 (3.1) | 8.20.0 (2.5) | 10.00.0 (3.0) | 10.80.0 (3.2) | 11.20.0 (3.4) | 4.50.0 (1.3) | 7.20.0 (2.2) | 10.00.1 (3.0) | 7.60.0 (2.3) | 7.50.0 (2.3) | 15.60.0 (4.7) | 8.10.0 (2.4) | 4.50.0 (1.4) | 6.00.0 (1.8) | 6.60.1 (2.0) | 9.30.0 (2.8) | 5.80.1 (1.7) | 9.00.0 (2.7) | 6.30.0 (1.9) | 19.70.0 (5.9) | 27.40.1 (8.3) | 28.30.0 (8.5) | 16.40.0 (4.9) | 15.60.0 (4.7) | 15.40.0 (4.6) |
creating/clearing 1k rows (5 cycles) Memory usage after creating and clearing 1000 rows 5 times | 2.90.0 (1.0) | 2.90.0 (1.1) | 2.90.0 (1.1) | 3.00.0 (1.1) | 2.70.0 (1.0) | 3.10.0 (1.1) | 3.10.0 (1.1) | 4.70.0 (1.7) | 3.30.0 (1.2) | 3.50.1 (1.3) | 6.90.0 (2.5) | 3.00.0 (1.1) | 6.20.0 (2.3) | 3.30.0 (1.2) | 4.20.0 (1.5) | 2.90.0 (1.1) | 3.10.0 (1.1) | 4.90.2 (1.8) | 3.20.0 (1.2) | 3.40.0 (1.2) | 5.10.0 (1.9) | 3.90.0 (1.4) | 3.00.0 (1.1) | 3.30.0 (1.2) | 3.20.0 (1.2) | 3.10.0 (1.1) | 3.00.0 (1.1) | 4.80.0 (1.7) | 3.70.0 (1.4) | 15.50.0 (5.7) | 3.30.0 (1.2) | 18.90.0 (6.9) | 4.00.0 (1.5) | 6.30.0 (2.3) | 6.40.1 (2.3) |