Go here for the accompanying article http://www.stefankrause.net/wp/?p=301. Source code can be found in the github repository.
angular v1.5.7 | angular v2.0.0-rc4 | aurelia v1.0.0-rc1.0.0 | cyclejs v6.0.3 | cyclejs v7.0.0 | ember v2.6.1 | inferno v0.7.13 | mithril v0.2.5 | plastiq v1.30.1 | preact v4.8.0 | ractive v0.7.3 | react-lite v0.15.14 | react v0.14.8 | react v15.2.0 | react v15.2.0-mobX-v2.3.3 | tsers v1.0.0 | vidom v0.3.6 | vue v1.0.26 | vanillajs | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
create rows Duration for creating 1000 rows after the page loaded. | 249.566.29 (1.98) | 192.384.51 (1.52) | 220.0825.31 (1.74) | 808.747.48 (6.41) | 181.135.57 (1.44) | 747.0113.05 (5.92) | 153.64.05 (1.22) | 322.6216.89 (2.56) | 180.236.53 (1.43) | 207.688.8 (1.65) | 548.8415.25 (4.35) | 169.046.23 (1.34) | 251.613.82 (1.99) | 184.482.26 (1.46) | 201.174.13 (1.59) | 289.396.79 (2.29) | 144.653.52 (1.15) | 259.779.46 (2.06) | 126.181.84 (1.00) |
replace all rows Duration for updating all 1000 rows of the table (with 5 warmup iterations). | 262.9114.03 (3.75) | 210.645.51 (3.00) | 131.699.4 (1.88) | 725.634.98 (10.3) | 106.592.09 (1.52) | 583.9915.99 (8.33) | 160.182.21 (2.28) | 278.425.33 (3.97) | 195.874.6 (2.79) | 194.532.26 (2.77) | 96.82.55 (1.38) | 230.354.36 (3.28) | 248.283.72 (3.54) | 197.824 (2.82) | 211.23.42 (3.01) | 135.032.22 (1.93) | 157.082.04 (2.24) | 261.848.52 (3.73) | 70.131.74 (1.00) |
partial update Time to update the text of every 10th row (with 5 warmup iterations). | 16.410.17 (1.03) | 11.870.44 (1.00) | 11.710.79 (1.00) | 664.416.63 (41.5) | 48.021.64 (3.00) | 37.670.83 (2.35) | 13.70.41 (1.00) | 97.052.34 (6.07) | 20.351.6 (1.27) | 21.770.63 (1.36) | 35.91.15 (2.24) | 29.10.74 (1.82) | 16.20.26 (1.01) | 18.780.66 (1.17) | 20.750.81 (1.30) | 42.652.38 (2.67) | 18.512.6 (1.16) | 15.760.56 (1.00) | 11.510.39 (1.00) |
select row Duration to highlight a row in response to a click on the row. (with 5 warmup iterations). | 7.851.4 (1.00) | 5.080.29 (1.00) | 53.8919.28 (3.37) | 657.9713.51 (41.1) | 38.853.4 (2.43) | 42.240.93 (2.64) | 6.310.88 (1.00) | 75.711.69 (4.73) | 8.382.76 (1.00) | 5.60.47 (1.00) | 10.890.7 (1.00) | 17.810.23 (1.11) | 6.430.84 (1.00) | 7.070.63 (1.00) | 6.510.32 (1.00) | 30.130.92 (1.88) | 12.521.59 (1.00) | 7.330.48 (1.00) | 5.981.35 (1.00) |
swap rows Time to swap 2 rows on a 1K table. (with 5 warmup iterations). | 50.531.5 (3.16) | 51.761.5 (3.23) | 53.835.39 (3.36) | 655.236.94 (41.0) | 43.862.78 (2.74) | 74.691.83 (4.67) | 48.090.96 (3.01) | 138.33.62 (8.64) | 51.491.73 (3.22) | 60.014.55 (3.75) | 32.021.1 (2.00) | 65.851.37 (4.12) | 53.371.8 (3.34) | 53.051.02 (3.32) | 55.711.47 (3.48) | 35.511.62 (2.22) | 58.971.9 (3.69) | 52.961.02 (3.31) | 7.830.18 (1.00) |
remove row Duration to remove a row. (with 5 warmup iterations). | 70.721.9 (1.14) | 133.522.53 (2.16) | 98.351.91 (1.59) | 684.624.86 (11.1) | 72.843.01 (1.18) | 92.951.43 (1.50) | 61.910.42 (1.00) | 138.562.07 (2.24) | 69.572.71 (1.12) | 65.92.06 (1.06) | 199.343.4 (3.22) | 79.761.5 (1.29) | 68.672.28 (1.11) | 64.892.16 (1.05) | 66.282.37 (1.07) | 79.132.8 (1.28) | 73.333.95 (1.18) | 70.610.85 (1.14) | 63.331.03 (1.02) |
create many rows Duration to create 10,000 rows | 2573.01105.2 (2.03) | 18429.49 (1.46) | 1857.5321.46 (1.47) | 59304.35441.56 (46.9) | 1806.9918.04 (1.43) | 5905.1191.34 (4.67) | 1488.9621.3 (1.18) | 3258.8819.34 (2.58) | 1870.9851.36 (1.48) | 2656.5564.6 (2.10) | 5994.12131.22 (4.74) | 2192.945.81 (1.73) | 3002.6570.77 (2.37) | 1858.0824.52 (1.47) | 1941.1446.4 (1.53) | 2937.5142.67 (2.32) | 1415.7117.43 (1.12) | 2705.86148.47 (2.14) | 1265.2216.65 (1.00) |
append rows to large table Duration for adding 1000 rows on a table of 10,000 rows. | 826.8817.85 (3.67) | 679.6714.07 (3.02) | 700.6322.64 (3.11) | 69569.98773.29 (309) | 729.0118.98 (3.24) | 1211.512.02 (5.38) | 285.4113.48 (1.27) | 1881.1728.77 (8.35) | 294.758 (1.31) | 459.7114.26 (2.04) | 1431.2616.67 (6.35) | 1755.836.2 (7.79) | 494.8614.69 (2.20) | 326.4118.33 (1.45) | 344.2510.34 (1.53) | 7018.71 (3.11) | 319.66.21 (1.42) | 743.4414.95 (3.30) | 225.31.89 (1.00) |
clear rows Duration to clear the table filled with 10.000 rows. | 840.636.94 (3.78) | 436.5427.78 (1.96) | 604.5623.45 (2.72) | 253.332.1 (1.14) | 240.713.04 (1.08) | 1182.9712.84 (5.32) | 227.162.26 (1.02) | 294.112.02 (1.32) | 247.116.26 (1.11) | 358.092.32 (1.61) | 2295.343.25 (10.3) | 394.4916.55 (1.78) | 385.485.58 (1.74) | 2000.8518.56 (9.01) | 2027.8818.11 (9.13) | 310.894.88 (1.40) | 223.4713.17 (1.01) | 434.5812.47 (1.96) | 222.164.81 (1.00) |
clear rows a 2nd time Time to clear the table filled with 10.000 rows. But warmed up with only one iteration. | 1644.5922.86 (8.51) | 411.5931.34 (2.13) | 615.635.58 (3.18) | 274.295.69 (1.42) | 236.95.19 (1.23) | 1617.6914.12 (8.37) | 227.973.15 (1.18) | 296.143.31 (1.53) | 238.256.11 (1.23) | 345.93.02 (1.79) | 1500161.27 (7.76) | 342.118.49 (1.77) | 366.036.83 (1.89) | 4117.9123.41 (21.3) | 4127.6910.26 (21.4) | 3174.46 (1.64) | 773.17.09 (4.00) | 435.337.33 (2.25) | 193.32.13 (1.00) |
slowdown geometric mean | 2.41 | 1.89 | 2.17 | 16.1 | 1.78 | 4.35 | 1.31 | 3.46 | 1.47 | 1.77 | 3.40 | 2.14 | 1.84 | 2.42 | 2.53 | 2.00 | 1.56 | 1.97 | 1.00 |
angular v1.5.7 | angular v2.0.0-rc4 | aurelia v1.0.0-rc1.0.0 | cyclejs v6.0.3 | cyclejs v7.0.0 | ember v2.6.1 | inferno v0.7.13 | mithril v0.2.5 | plastiq v1.30.1 | preact v4.8.0 | ractive v0.7.3 | react-lite v0.15.14 | react v0.14.8 | react v15.2.0 | react v15.2.0-mobX-v2.3.3 | tsers v1.0.0 | vidom v0.3.6 | vue v1.0.26 | vanillajs | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
ready memory Memory usage after page load. | 4.860.52 (2.00) | 17.052.34 (7.02) | 21.590.5 (8.88) | 4.720.28 (1.94) | 3.320.19 (1.37) | 10.10.53 (4.16) | 30.03 (1.23) | 2.680.02 (1.10) | 2.680.02 (1.10) | 2.640.02 (1.09) | 4.090.18 (1.68) | 30.02 (1.23) | 40.07 (1.65) | 4.250.13 (1.75) | 5.170.06 (2.13) | 6.670.23 (2.74) | 2.890.03 (1.19) | 3.360.06 (1.38) | 2.430.01 (1.00) |
run memory Memory usage after adding 1000 rows. | 13.370.46 (4.27) | 27.533.99 (8.80) | 27.950.82 (8.93) | 9.470.2 (3.03) | 6.650.22 (2.12) | 37.170.98 (11.9) | 6.350.16 (2.03) | 8.890.17 (2.84) | 8.770.33 (2.80) | 6.160.21 (1.97) | 22.240.41 (7.11) | 13.780.21 (4.40) | 11.020.43 (3.52) | 9.710.18 (3.10) | 11.220.19 (3.58) | 13.80.42 (4.41) | 6.130.17 (1.96) | 12.850.16 (4.11) | 3.130.19 (1.00) |