diff --git a/vanillajs-keyed/src/Main.js b/vanillajs-keyed/src/Main.js index d0c5e08da..a092b04be 100644 --- a/vanillajs-keyed/src/Main.js +++ b/vanillajs-keyed/src/Main.js @@ -243,7 +243,6 @@ class Main { this.rows.splice(idx, 1); this.data.splice(idx, 1); this.unselect(); - this.recreateSelection(); stopMeasure(); } @@ -283,13 +282,15 @@ class Main { } clear() { startMeasure("clear"); - this.removeAllRows(); this.store.clear(); this.rows = []; this.data = []; - this.unselect(); - stopMeasure(); - } + requestAnimationFrame(() => { + this.removeAllRows(); + this.unselect(); + stopMeasure(); + }); + } swapRows() { startMeasure("swapRows"); if (this.data.length>10) { diff --git a/vanillajs-non-keyed/src/Main.js b/vanillajs-non-keyed/src/Main.js index 0b25dba76..9ac3a0efb 100644 --- a/vanillajs-non-keyed/src/Main.js +++ b/vanillajs-non-keyed/src/Main.js @@ -292,13 +292,15 @@ class Main { } clear() { startMeasure("clear"); - this.removeAllRows(); this.store.clear(); this.rows = []; this.data = []; - this.unselect(); - stopMeasure(); - } + requestAnimationFrame(() => { + this.removeAllRows(); + this.unselect(); + stopMeasure(); + }); + } swapRows() { startMeasure("swapRows"); let old_selection = this.store.selected; diff --git a/webdriver-ts/table.html b/webdriver-ts/table.html index 2b8589cb2..9a35dccb3 100644 --- a/webdriver-ts/table.html +++ b/webdriver-ts/table.html @@ -1,8 +1,8 @@
Warning: These results are preliminary - use with caution (they may e.g. be from different browser versions).Official results are published on my blog.
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. -
angular v1.6.3-keyed | angular v2.4.9-keyed | angular v4.0.0-keyed | binding.scala v10.0.1 | bobril v6.2.0 | domvm v2.1.3-keyed | elm v0.18.0 | ember v2.10.0-beta.3 | ember v2.6.1 | glimmer v0.3.10 | inferno v1.6.0-keyed | ivi v0.5.0 | kivi v1.0.0-rc2 | knockout v3.4.1 | marionette v3.1.0 | marko v4.2.0 | mithril v0.2.5 | mithril v1.0.1 | nx v1.0.0-beta.1.1.0-keyed | pico-dom v0.18.0 | plastiq v1.33.0 | preact v7.1.0 | ractive v0.8.9-keyed | react-lite v0.15.30 | react v15.4.2-keyed | react v15.4.2-mobX-v3.0.1 | react v15.4.2-redux-v3.6.0 | rx-domh v0.0.2-rxjs-v5.3.0 | surplus v0.4.0-keyed | vidom v0.7.1 | vue v2.2.4-keyed | vanillajs-keyed | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
create rows Duration for creating 1000 rows after the page loaded. | 256.228.28 (1.92) | 195.9912.00 (1.47) | 205.3511.77 (1.54) | 361.8714.81 (2.71) | 153.4711.25 (1.15) | 154.695.58 (1.16) | 177.658.19 (1.33) | 338.2014.37 (2.54) | 397.5618.42 (2.98) | 305.7212.88 (2.29) | 149.596.80 (1.12) | 148.417.23 (1.11) | 143.805.52 (1.08) | 362.9011.61 (2.72) | 707.7127.24 (5.31) | 163.8411.14 (1.23) | 243.9319.74 (1.83) | 162.795.39 (1.22) | 218.0713.77 (1.63) | 145.874.54 (1.09) | 180.7510.53 (1.36) | 175.6610.48 (1.32) | 329.0214.87 (2.47) | 166.037.55 (1.24) | 193.7718.18 (1.45) | 245.699.14 (1.84) | 213.5016.56 (1.60) | 552.3714.54 (4.14) | 145.106.64 (1.09) | 168.899.07 (1.27) | 164.3711.05 (1.23) | 133.385.63 (1.00) |
replace all rows Duration for updating all 1000 rows of the table (with 5 warmup iterations). | 258.5813.08 (1.76) | 190.466.39 (1.30) | 196.855.47 (1.34) | 224.308.80 (1.53) | 171.858.26 (1.17) | 160.984.45 (1.10) | 179.2614.60 (1.22) | 296.339.67 (2.02) | 297.7216.38 (2.03) | 252.864.95 (1.72) | 155.545.39 (1.06) | 149.354.47 (1.02) | 148.944.66 (1.02) | 368.7715.41 (2.52) | 499.289.84 (3.41) | 176.686.58 (1.21) | 242.673.38 (1.66) | 174.754.93 (1.19) | 1157.44101.45 (7.90) | 164.215.19 (1.12) | 176.955.14 (1.21) | 194.715.75 (1.33) | 325.6316.45 (2.22) | 234.856.53 (1.60) | 200.216.83 (1.37) | 233.3012.58 (1.59) | 206.288.25 (1.41) | 1513.6927.75 (10.33) | 149.543.84 (1.02) | 162.356.44 (1.11) | 167.275.42 (1.14) | 146.603.30 (1.00) |
partial update Time to update the text of every 10th row (with 5 warmup iterations). | 12.661.89 (1.00) | 11.762.01 (1.00) | 17.616.99 (1.10) | 14.802.46 (1.00) | 13.271.33 (1.00) | 13.762.09 (1.00) | 29.926.86 (1.87) | 15.661.04 (1.00) | 37.541.81 (2.35) | 22.667.94 (1.42) | 13.053.07 (1.00) | 13.513.63 (1.00) | 11.221.40 (1.00) | 13.122.94 (1.00) | 38.032.14 (2.38) | 19.654.38 (1.23) | 55.103.18 (3.44) | 22.185.45 (1.39) | 11.961.48 (1.00) | 12.461.17 (1.00) | 17.535.34 (1.10) | 14.882.36 (1.00) | 17.311.09 (1.08) | 28.791.88 (1.80) | 17.211.45 (1.08) | 18.261.45 (1.14) | 18.091.46 (1.13) | 271.006.26 (16.94) | 14.175.34 (1.00) | 14.492.22 (1.00) | 15.861.36 (1.00) | 15.775.70 (1.00) |
select row Duration to highlight a row in response to a click on the row. (with 5 warmup iterations). | 10.024.18 (1.00) | 5.623.52 (1.00) | 5.213.28 (1.00) | 9.103.39 (1.00) | 7.313.91 (1.00) | 8.184.60 (1.00) | 20.182.56 (1.26) | 12.064.07 (1.00) | 11.161.95 (1.00) | 11.082.41 (1.00) | 8.773.39 (1.00) | 8.174.64 (1.00) | 6.693.71 (1.00) | 12.033.13 (1.00) | 10.404.78 (1.00) | 10.314.71 (1.00) | 39.101.52 (2.44) | 12.842.15 (1.00) | 11.023.92 (1.00) | 9.734.22 (1.00) | 8.984.41 (1.00) | 8.935.31 (1.00) | 7.631.64 (1.00) | 20.441.16 (1.28) | 8.483.48 (1.00) | 8.412.12 (1.00) | 8.462.67 (1.00) | 9.014.63 (1.00) | 9.683.06 (1.00) | 9.254.29 (1.00) | 11.383.50 (1.00) | 9.054.85 (1.00) |
swap rows Time to swap 2 rows on a 1K table. (with 5 warmup iterations). | 13.700.59 (1.00) | 12.940.73 (1.00) | 12.860.54 (1.00) | 11.811.11 (1.00) | 12.281.19 (1.00) | 15.621.69 (1.00) | 30.675.22 (1.92) | 15.570.77 (1.00) | 37.671.90 (2.35) | 17.401.22 (1.09) | 12.080.61 (1.00) | 11.941.26 (1.00) | 11.440.63 (1.00) | 15.741.74 (1.00) | 134.824.55 (8.43) | 24.834.09 (1.55) | 55.683.82 (3.48) | 22.091.08 (1.38) | 143.843.63 (8.99) | 15.621.77 (1.00) | 12.250.80 (1.00) | 13.590.97 (1.00) | 19.371.81 (1.21) | 28.640.99 (1.79) | 14.840.91 (1.00) | 17.630.67 (1.10) | 16.371.03 (1.02) | 119.703.31 (7.48) | 11.690.82 (1.00) | 16.232.33 (1.01) | 17.321.13 (1.08) | 11.420.95 (1.00) |
remove row Duration to remove a row. (with 5 warmup iterations). | 47.872.87 (1.11) | 48.703.32 (1.13) | 46.913.06 (1.09) | 43.242.41 (1.01) | 58.345.88 (1.36) | 45.481.55 (1.06) | 74.157.81 (1.73) | 50.442.69 (1.17) | 74.702.31 (1.74) | 59.096.41 (1.37) | 43.452.48 (1.01) | 43.642.71 (1.02) | 45.782.80 (1.07) | 48.833.10 (1.14) | 48.892.56 (1.14) | 50.508.29 (1.17) | 84.316.92 (1.96) | 54.581.96 (1.27) | 144.374.67 (3.36) | 47.052.61 (1.09) | 56.164.76 (1.31) | 48.043.04 (1.12) | 58.983.55 (1.37) | 62.402.54 (1.45) | 47.292.57 (1.10) | 54.473.36 (1.27) | 52.723.00 (1.23) | 123.946.04 (2.88) | 43.802.57 (1.02) | 57.864.30 (1.35) | 51.203.66 (1.19) | 42.981.74 (1.00) |
create many rows Duration to create 10,000 rows | 4460.963178.93 (3.40) | 1889.7968.02 (1.44) | 1892.6575.48 (1.44) | 2608.5053.09 (1.99) | 1493.3219.84 (1.14) | 1534.9649.14 (1.17) | 1633.6360.62 (1.25) | 2598.4654.44 (1.98) | 3056.5945.07 (2.33) | 2369.7938.26 (1.81) | 1443.9121.60 (1.10) | 1460.6524.85 (1.11) | 1391.8734.67 (1.06) | 3440.8697.05 (2.63) | 4450.3269.20 (3.40) | 1578.2246.38 (1.20) | 2842.0776.36 (2.17) | 1773.0829.30 (1.35) | 2223.4631.52 (1.70) | 1456.3621.16 (1.11) | 1796.7324.12 (1.37) | 1873.6634.03 (1.43) | 2996.8575.80 (2.29) | 2279.4533.77 (1.74) | 1850.8256.20 (1.41) | 2176.7567.44 (1.66) | 1911.5450.52 (1.46) | 4893.6484.44 (3.74) | 1431.8219.51 (1.09) | 1454.8730.02 (1.11) | 1602.0730.95 (1.22) | 1310.1926.56 (1.00) |
append rows to large table Duration for adding 1000 rows on a table of 10,000 rows. | 440.018.80 (1.54) | 365.0857.92 (1.28) | 347.5229.65 (1.22) | 377.8154.43 (1.33) | 297.318.60 (1.04) | 319.139.36 (1.12) | 469.7816.37 (1.65) | 522.5618.53 (1.83) | 741.8245.75 (2.60) | 449.4531.25 (1.58) | 295.438.96 (1.04) | 299.946.87 (1.05) | 289.197.23 (1.01) | 5095.4292.93 (17.87) | 3979.1852.17 (13.96) | 376.2312.60 (1.32) | 1363.7044.19 (4.78) | 462.838.66 (1.62) | 359.027.11 (1.26) | 325.955.16 (1.14) | 332.3514.62 (1.17) | 347.9211.35 (1.22) | 449.1211.24 (1.58) | 2102.0249.73 (7.37) | 348.6014.84 (1.22) | 448.7915.14 (1.57) | 367.3712.51 (1.29) | 1897.9410.95 (6.66) | 287.837.85 (1.01) | 364.8311.14 (1.28) | 390.037.53 (1.37) | 285.0711.54 (1.00) |
clear rows Duration to clear the table filled with 10.000 rows. | 809.5032.95 (4.35) | 386.1542.85 (2.07) | 400.2148.61 (2.15) | 528.0819.94 (2.83) | 213.565.56 (1.15) | 236.825.52 (1.27) | 222.349.54 (1.19) | 309.7175.70 (1.66) | 592.3339.19 (3.18) | 206.853.94 (1.11) | 216.747.94 (1.16) | 201.745.46 (1.08) | 205.445.37 (1.10) | 591.9171.66 (3.18) | 1072.7136.11 (5.76) | 298.527.04 (1.60) | 304.2925.08 (1.63) | 247.397.46 (1.33) | 269.0622.78 (1.44) | 222.975.54 (1.20) | 224.317.45 (1.20) | 331.4210.12 (1.78) | 631.058.54 (3.39) | 345.4727.88 (1.85) | 397.177.70 (2.13) | 506.5339.07 (2.72) | 402.0810.68 (2.16) | 528.1712.09 (2.84) | 213.464.79 (1.15) | 186.284.25 (1.00) | 258.683.44 (1.39) | 198.334.49 (1.06) |
startup time Time for loading, parsing and starting up | 121.493.72 (3.05) | 102.212.41 (2.57) | 126.022.35 (3.16) | 94.522.03 (2.37) | 50.077.61 (1.26) | 43.877.83 (1.10) | 62.996.98 (1.58) | 247.955.88 (6.23) | 214.523.27 (5.39) | 81.492.93 (2.05) | 43.432.08 (1.09) | 41.685.68 (1.05) | 49.459.47 (1.24) | 60.152.72 (1.51) | 85.562.47 (2.15) | 46.961.79 (1.18) | 47.536.55 (1.19) | 45.441.79 (1.14) | 59.752.58 (1.50) | 48.718.87 (1.22) | 46.826.65 (1.18) | 41.223.38 (1.03) | 93.092.74 (2.34) | 44.241.41 (1.11) | 93.883.34 (2.36) | 111.544.28 (2.80) | 89.692.30 (2.25) | 97.446.44 (2.45) | 47.239.04 (1.19) | 51.939.94 (1.30) | 53.861.59 (1.35) | 39.839.38 (1.00) |
slowdown geometric mean | 1.75 | 1.36 | 1.40 | 1.54 | 1.12 | 1.09 | 1.48 | 1.72 | 2.39 | 1.49 | 1.06 | 1.04 | 1.06 | 2.11 | 3.45 | 1.26 | 2.26 | 1.28 | 2.12 | 1.10 | 1.18 | 1.20 | 1.76 | 1.78 | 1.35 | 1.57 | 1.40 | 4.40 | 1.05 | 1.14 | 1.19 | 1.01 |
angular v1.6.3-keyed | angular v2.4.9-keyed | angular v4.0.0-keyed | binding.scala v10.0.1 | bobril v6.2.0 | domvm v2.1.3-keyed | elm v0.18.0 | ember v2.10.0-beta.3 | ember v2.6.1 | glimmer v0.3.10 | inferno v1.6.0-keyed | ivi v0.5.0 | kivi v1.0.0-rc2 | knockout v3.4.1 | marionette v3.1.0 | marko v4.2.0 | mithril v0.2.5 | mithril v1.0.1 | nx v1.0.0-beta.1.1.0-keyed | pico-dom v0.18.0 | plastiq v1.33.0 | preact v7.1.0 | ractive v0.8.9-keyed | react-lite v0.15.30 | react v15.4.2-keyed | react v15.4.2-mobX-v3.0.1 | react v15.4.2-redux-v3.6.0 | rx-domh v0.0.2-rxjs-v5.3.0 | surplus v0.4.0-keyed | vidom v0.7.1 | vue v2.2.4-keyed | vanillajs-keyed | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
ready memory Memory usage after page load. | 6.430.32 (1.56) | 6.880.23 (1.67) | 7.330.13 (1.78) | 8.050.12 (1.96) | 4.320.12 (1.05) | 4.180.12 (1.02) | 4.850.13 (1.18) | 11.600.27 (2.82) | 10.210.24 (2.48) | 6.050.17 (1.47) | 4.300.12 (1.05) | 4.390.20 (1.07) | 4.190.12 (1.02) | 4.690.13 (1.14) | 5.790.21 (1.41) | 4.400.12 (1.07) | 4.270.13 (1.04) | 4.230.13 (1.03) | 4.720.15 (1.15) | 4.190.12 (1.02) | 4.270.12 (1.04) | 4.260.12 (1.04) | 5.910.14 (1.44) | 4.480.13 (1.09) | 5.730.15 (1.39) | 6.800.13 (1.65) | 6.270.21 (1.52) | 6.490.19 (1.58) | 4.220.12 (1.03) | 4.390.13 (1.07) | 4.630.13 (1.13) | 4.110.19 (1.00) |
run memory Memory usage after adding 1000 rows. | 17.030.83 (2.43) | 14.320.50 (2.04) | 15.630.50 (2.23) | 26.261.21 (3.74) | 9.200.88 (1.31) | 10.170.51 (1.45) | 11.230.47 (1.60) | 22.650.75 (3.23) | 28.020.66 (4.00) | 14.850.77 (2.12) | 8.930.59 (1.27) | 8.810.58 (1.26) | 8.750.48 (1.25) | 27.680.63 (3.95) | 15.260.87 (2.18) | 8.990.48 (1.28) | 12.420.61 (1.77) | 10.410.58 (1.48) | 12.370.65 (1.76) | 8.010.62 (1.14) | 11.940.56 (1.70) | 9.810.48 (1.40) | 24.070.71 (3.43) | 17.050.56 (2.43) | 12.980.75 (1.85) | 18.250.61 (2.60) | 14.720.71 (2.10) | 12.330.74 (1.76) | 8.820.96 (1.26) | 9.290.71 (1.32) | 10.270.83 (1.46) | 7.010.62 (1.00) |
Non keyed implementations are allowed to reuse existing dom elements. +
angular v1.6.3-keyed | angular v2.4.9-keyed | angular v4.0.0-keyed | binding.scala v10.0.1 | bobril v6.2.0 | domvm v2.1.3-keyed | elm v0.18.0 | ember v2.10.0-beta.3 | ember v2.6.1 | glimmer v0.3.10 | inferno v1.6.0-keyed | ivi v0.5.0 | kivi v1.0.0-rc2 | knockout v3.4.1 | marionette v3.1.0 | marko v4.2.0 | mithril v0.2.5 | mithril v1.0.1 | nx v1.0.0-beta.1.1.0-keyed | pico-dom v0.18.0 | plastiq v1.33.0 | preact v7.1.0 | ractive v0.8.9-keyed | react-lite v0.15.30 | react v15.4.2-keyed | react v15.4.2-mobX-v3.0.1 | react v15.4.2-redux-v3.6.0 | rx-domh v0.0.2-rxjs-v5.3.0 | surplus v0.4.0-keyed | vidom v0.7.1 | vue v2.2.4-keyed | vanillajs-keyed | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
create rows Duration for creating 1000 rows after the page loaded. | 256.228.28 (1.92) | 195.9912.00 (1.47) | 205.3511.77 (1.54) | 361.8714.81 (2.71) | 153.4711.25 (1.15) | 154.695.58 (1.16) | 177.658.19 (1.33) | 338.2014.37 (2.54) | 397.5618.42 (2.98) | 305.7212.88 (2.29) | 149.596.80 (1.12) | 148.417.23 (1.11) | 143.805.52 (1.08) | 362.9011.61 (2.72) | 707.7127.24 (5.31) | 163.8411.14 (1.23) | 243.9319.74 (1.83) | 162.795.39 (1.22) | 218.0713.77 (1.64) | 145.874.54 (1.09) | 180.7510.53 (1.36) | 175.6610.48 (1.32) | 329.0214.87 (2.47) | 166.037.55 (1.24) | 193.7718.18 (1.45) | 245.699.14 (1.84) | 213.5016.56 (1.60) | 552.3714.54 (4.14) | 145.106.64 (1.09) | 168.899.07 (1.27) | 164.3711.05 (1.23) | 133.364.65 (1.00) |
replace all rows Duration for updating all 1000 rows of the table (with 5 warmup iterations). | 258.5813.08 (1.74) | 190.466.39 (1.28) | 196.855.47 (1.33) | 224.308.80 (1.51) | 171.858.26 (1.16) | 160.984.45 (1.08) | 179.2614.60 (1.21) | 296.339.67 (2.00) | 297.7216.38 (2.01) | 252.864.95 (1.70) | 155.545.39 (1.05) | 149.354.47 (1.01) | 148.944.66 (1.00) | 368.7715.41 (2.48) | 499.289.84 (3.36) | 176.686.58 (1.19) | 242.673.38 (1.63) | 174.754.93 (1.18) | 1157.44101.45 (7.80) | 164.215.19 (1.11) | 176.955.14 (1.19) | 194.715.75 (1.31) | 325.6316.45 (2.19) | 234.856.53 (1.58) | 200.216.83 (1.35) | 233.3012.58 (1.57) | 206.288.25 (1.39) | 1513.6927.75 (10.20) | 149.543.84 (1.01) | 162.356.44 (1.09) | 167.275.42 (1.13) | 148.423.47 (1.00) |
partial update Time to update the text of every 10th row (with 5 warmup iterations). | 12.661.89 (1.00) | 11.762.01 (1.00) | 17.616.99 (1.10) | 14.802.46 (1.00) | 13.271.33 (1.00) | 13.762.09 (1.00) | 29.926.86 (1.87) | 15.661.04 (1.00) | 37.541.81 (2.35) | 22.667.94 (1.42) | 13.053.07 (1.00) | 13.513.63 (1.00) | 11.221.40 (1.00) | 13.122.94 (1.00) | 38.032.14 (2.38) | 19.654.38 (1.23) | 55.103.18 (3.44) | 22.185.45 (1.39) | 11.961.48 (1.00) | 12.461.17 (1.00) | 17.535.34 (1.10) | 14.882.36 (1.00) | 17.311.09 (1.08) | 28.791.88 (1.80) | 17.211.45 (1.08) | 18.261.45 (1.14) | 18.091.46 (1.13) | 271.006.26 (16.94) | 14.175.34 (1.00) | 14.492.22 (1.00) | 15.861.36 (1.00) | 12.443.04 (1.00) |
select row Duration to highlight a row in response to a click on the row. (with 5 warmup iterations). | 10.024.18 (1.00) | 5.623.52 (1.00) | 5.213.28 (1.00) | 9.103.39 (1.00) | 7.313.91 (1.00) | 8.184.60 (1.00) | 20.182.56 (1.26) | 12.064.07 (1.00) | 11.161.95 (1.00) | 11.082.41 (1.00) | 8.773.39 (1.00) | 8.174.64 (1.00) | 6.693.71 (1.00) | 12.033.13 (1.00) | 10.404.78 (1.00) | 10.314.71 (1.00) | 39.101.52 (2.44) | 12.842.15 (1.00) | 11.023.92 (1.00) | 9.734.22 (1.00) | 8.984.41 (1.00) | 8.935.31 (1.00) | 7.631.64 (1.00) | 20.441.16 (1.28) | 8.483.48 (1.00) | 8.412.12 (1.00) | 8.462.67 (1.00) | 9.014.63 (1.00) | 9.683.06 (1.00) | 9.254.29 (1.00) | 11.383.50 (1.00) | 6.953.36 (1.00) |
swap rows Time to swap 2 rows on a 1K table. (with 5 warmup iterations). | 13.700.59 (1.00) | 12.940.73 (1.00) | 12.860.54 (1.00) | 11.811.11 (1.00) | 12.281.19 (1.00) | 15.621.69 (1.00) | 30.675.22 (1.92) | 15.570.77 (1.00) | 37.671.90 (2.35) | 17.401.22 (1.09) | 12.080.61 (1.00) | 11.941.26 (1.00) | 11.440.63 (1.00) | 15.741.74 (1.00) | 134.824.55 (8.43) | 24.834.09 (1.55) | 55.683.82 (3.48) | 22.091.08 (1.38) | 143.843.63 (8.99) | 15.621.77 (1.00) | 12.250.80 (1.00) | 13.590.97 (1.00) | 19.371.81 (1.21) | 28.640.99 (1.79) | 14.840.91 (1.00) | 17.630.67 (1.10) | 16.371.03 (1.02) | 119.703.31 (7.48) | 11.690.82 (1.00) | 16.232.33 (1.01) | 17.321.13 (1.08) | 12.554.37 (1.00) |
remove row Duration to remove a row. (with 5 warmup iterations). | 47.872.87 (1.11) | 48.703.32 (1.13) | 46.913.06 (1.08) | 43.242.41 (1.00) | 58.345.88 (1.35) | 45.481.55 (1.05) | 74.157.81 (1.71) | 50.442.69 (1.17) | 74.702.31 (1.73) | 59.096.41 (1.37) | 43.452.48 (1.00) | 43.642.71 (1.01) | 45.782.80 (1.06) | 48.833.10 (1.13) | 48.892.56 (1.13) | 50.508.29 (1.17) | 84.316.92 (1.95) | 54.581.96 (1.26) | 144.374.67 (3.34) | 47.052.61 (1.09) | 56.164.76 (1.30) | 48.043.04 (1.11) | 58.983.55 (1.36) | 62.402.54 (1.44) | 47.292.57 (1.09) | 54.473.36 (1.26) | 52.723.00 (1.22) | 123.946.04 (2.87) | 43.802.57 (1.01) | 57.864.30 (1.34) | 51.203.66 (1.18) | 44.162.25 (1.02) |
create many rows Duration to create 10,000 rows | 4460.963178.93 (3.34) | 1889.7968.02 (1.41) | 1892.6575.48 (1.42) | 2608.5053.09 (1.95) | 1493.3219.84 (1.12) | 1534.9649.14 (1.15) | 1633.6360.62 (1.22) | 2598.4654.44 (1.95) | 3056.5945.07 (2.29) | 2369.7938.26 (1.77) | 1443.9121.60 (1.08) | 1460.6524.85 (1.09) | 1391.8734.67 (1.04) | 3440.8697.05 (2.58) | 4450.3269.20 (3.33) | 1578.2246.38 (1.18) | 2842.0776.36 (2.13) | 1773.0829.30 (1.33) | 2223.4631.52 (1.66) | 1456.3621.16 (1.09) | 1796.7324.12 (1.34) | 1873.6634.03 (1.40) | 2996.8575.80 (2.24) | 2279.4533.77 (1.71) | 1850.8256.20 (1.39) | 2176.7567.44 (1.63) | 1911.5450.52 (1.43) | 4893.6484.44 (3.66) | 1431.8219.51 (1.07) | 1454.8730.02 (1.09) | 1602.0730.95 (1.20) | 1335.9635.11 (1.00) |
append rows to large table Duration for adding 1000 rows on a table of 10,000 rows. | 440.018.80 (1.53) | 365.0857.92 (1.27) | 347.5229.65 (1.21) | 377.8154.43 (1.31) | 297.318.60 (1.03) | 319.139.36 (1.11) | 469.7816.37 (1.63) | 522.5618.53 (1.82) | 741.8245.75 (2.58) | 449.4531.25 (1.56) | 295.438.96 (1.03) | 299.946.87 (1.04) | 289.197.23 (1.00) | 5095.4292.93 (17.70) | 3979.1852.17 (13.82) | 376.2312.60 (1.31) | 1363.7044.19 (4.74) | 462.838.66 (1.61) | 359.027.11 (1.25) | 325.955.16 (1.13) | 332.3514.62 (1.15) | 347.9211.35 (1.21) | 449.1211.24 (1.56) | 2102.0249.73 (7.30) | 348.6014.84 (1.21) | 448.7915.14 (1.56) | 367.3712.51 (1.28) | 1897.9410.95 (6.59) | 287.837.85 (1.00) | 364.8311.14 (1.27) | 390.037.53 (1.36) | 290.528.93 (1.01) |
clear rows Duration to clear the table filled with 10.000 rows. | 809.5032.95 (4.72) | 386.1542.85 (2.25) | 400.2148.61 (2.33) | 528.0819.94 (3.08) | 213.565.56 (1.24) | 236.825.52 (1.38) | 222.349.54 (1.30) | 309.7175.70 (1.80) | 592.3339.19 (3.45) | 206.853.94 (1.21) | 216.747.94 (1.26) | 201.745.46 (1.18) | 205.445.37 (1.20) | 591.9171.66 (3.45) | 1072.7136.11 (6.25) | 298.527.04 (1.74) | 304.2925.08 (1.77) | 247.397.46 (1.44) | 269.0622.78 (1.57) | 222.975.54 (1.30) | 224.317.45 (1.31) | 331.4210.12 (1.93) | 631.058.54 (3.68) | 345.4727.88 (2.01) | 397.177.70 (2.31) | 506.5339.07 (2.95) | 402.0810.68 (2.34) | 528.1712.09 (3.08) | 213.464.79 (1.24) | 186.284.25 (1.09) | 258.683.44 (1.51) | 171.645.31 (1.00) |
startup time Time for loading, parsing and starting up | 121.493.72 (2.96) | 102.212.41 (2.49) | 126.022.35 (3.07) | 94.522.03 (2.30) | 50.077.61 (1.22) | 43.877.83 (1.07) | 62.996.98 (1.53) | 247.955.88 (6.03) | 214.523.27 (5.22) | 81.492.93 (1.98) | 43.432.08 (1.06) | 41.685.68 (1.01) | 49.459.47 (1.20) | 60.152.72 (1.46) | 85.562.47 (2.08) | 46.961.79 (1.14) | 47.536.55 (1.16) | 45.441.79 (1.11) | 59.752.58 (1.45) | 48.718.87 (1.19) | 46.826.65 (1.14) | 41.223.38 (1.00) | 93.092.74 (2.27) | 44.241.41 (1.08) | 93.883.34 (2.28) | 111.544.28 (2.71) | 89.692.30 (2.18) | 97.446.44 (2.37) | 47.239.04 (1.15) | 51.939.94 (1.26) | 53.861.59 (1.31) | 41.097.81 (1.00) |
slowdown geometric mean | 1.75 | 1.36 | 1.40 | 1.54 | 1.12 | 1.10 | 1.48 | 1.72 | 2.39 | 1.49 | 1.06 | 1.04 | 1.06 | 2.11 | 3.45 | 1.26 | 2.26 | 1.28 | 2.12 | 1.10 | 1.18 | 1.20 | 1.76 | 1.78 | 1.35 | 1.57 | 1.40 | 4.40 | 1.05 | 1.14 | 1.19 | 1.00 |
angular v1.6.3-keyed | angular v2.4.9-keyed | angular v4.0.0-keyed | binding.scala v10.0.1 | bobril v6.2.0 | domvm v2.1.3-keyed | elm v0.18.0 | ember v2.10.0-beta.3 | ember v2.6.1 | glimmer v0.3.10 | inferno v1.6.0-keyed | ivi v0.5.0 | kivi v1.0.0-rc2 | knockout v3.4.1 | marionette v3.1.0 | marko v4.2.0 | mithril v0.2.5 | mithril v1.0.1 | nx v1.0.0-beta.1.1.0-keyed | pico-dom v0.18.0 | plastiq v1.33.0 | preact v7.1.0 | ractive v0.8.9-keyed | react-lite v0.15.30 | react v15.4.2-keyed | react v15.4.2-mobX-v3.0.1 | react v15.4.2-redux-v3.6.0 | rx-domh v0.0.2-rxjs-v5.3.0 | surplus v0.4.0-keyed | vidom v0.7.1 | vue v2.2.4-keyed | vanillajs-keyed | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
ready memory Memory usage after page load. | 6.430.32 (1.59) | 6.880.23 (1.70) | 7.330.13 (1.81) | 8.050.12 (1.99) | 4.320.12 (1.07) | 4.180.12 (1.03) | 4.850.13 (1.20) | 11.600.27 (2.87) | 10.210.24 (2.53) | 6.050.17 (1.50) | 4.300.12 (1.07) | 4.390.20 (1.09) | 4.190.12 (1.04) | 4.690.13 (1.16) | 5.790.21 (1.43) | 4.400.12 (1.09) | 4.270.13 (1.06) | 4.230.13 (1.05) | 4.720.15 (1.17) | 4.190.12 (1.04) | 4.270.12 (1.06) | 4.260.12 (1.05) | 5.910.14 (1.46) | 4.480.13 (1.11) | 5.730.15 (1.42) | 6.800.13 (1.68) | 6.270.21 (1.55) | 6.490.19 (1.61) | 4.220.12 (1.04) | 4.390.13 (1.09) | 4.630.13 (1.15) | 4.040.12 (1.00) |
run memory Memory usage after adding 1000 rows. | 17.030.83 (2.43) | 14.320.50 (2.04) | 15.630.50 (2.23) | 26.261.21 (3.75) | 9.200.88 (1.31) | 10.170.51 (1.45) | 11.230.47 (1.60) | 22.650.75 (3.23) | 28.020.66 (4.00) | 14.850.77 (2.12) | 8.930.59 (1.27) | 8.810.58 (1.26) | 8.750.48 (1.25) | 27.680.63 (3.95) | 15.260.87 (2.18) | 8.990.48 (1.28) | 12.420.61 (1.77) | 10.410.58 (1.48) | 12.370.65 (1.76) | 8.010.62 (1.14) | 11.940.56 (1.70) | 9.810.48 (1.40) | 24.070.71 (3.43) | 17.050.56 (2.43) | 12.980.75 (1.85) | 18.250.61 (2.60) | 14.720.71 (2.10) | 12.330.74 (1.76) | 8.820.96 (1.26) | 9.290.71 (1.33) | 10.270.83 (1.46) | 7.010.62 (1.00) |
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. -
Datum v0.8.0 | angular v2.4.9-non-keyed | angular v4.0.0-non-keyed | aurelia v1.1.0 | choo v4.1.0 | cyclejs-dom v14.1.0 | dio v3.0.5 | domvm v2.1.3-non-keyed | hyperapp v0.6.0 | inferno v1.6.0-non-keyed | nx v1.0.0-beta.1.1.0-non-keyed | polymer v1.7.0 | ractive-edge | ractive v0.8.9-non-keyed | react v15.4.2-non-keyed | riot v3.0.7 | simulacra v2.0.4 | stem v0.2.60 | surplus v0.4.0-nonkeyed | svelte v1.0.1 | tsers v1.0.0 | vue v2.2.4-non-keyed | vanillajs-non-keyed | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
create rows Duration for creating 1000 rows after the page loaded. | 383.6624.27 (2.86) | 197.2610.75 (1.47) | 203.9611.05 (1.52) | 187.357.48 (1.39) | 184.8910.16 (1.38) | 160.249.92 (1.19) | 141.236.05 (1.05) | 149.146.13 (1.11) | 156.126.19 (1.16) | 150.475.51 (1.12) | 218.9811.01 (1.63) | 226.6211.34 (1.69) | 299.7710.02 (2.23) | 333.4116.04 (2.48) | 188.6314.76 (1.40) | 309.7015.19 (2.31) | 180.0013.88 (1.34) | 230.6215.99 (1.72) | 134.314.91 (1.00) | 141.825.59 (1.06) | 252.0311.45 (1.88) | 167.0010.94 (1.24) | 135.045.30 (1.01) |
replace all rows Duration for updating all 1000 rows of the table (with 5 warmup iterations). | 1830.28624.70 (32.61) | 59.451.76 (1.06) | 61.086.55 (1.09) | 90.693.82 (1.62) | 180.9612.83 (3.22) | 72.959.49 (1.30) | 57.502.74 (1.02) | 66.242.21 (1.18) | 86.952.94 (1.55) | 60.232.58 (1.07) | 73.363.04 (1.31) | 67.743.38 (1.21) | 70.182.90 (1.25) | 67.743.58 (1.21) | 77.444.79 (1.38) | 65.243.13 (1.16) | 60.382.60 (1.08) | 236.875.62 (4.22) | 63.037.95 (1.12) | 56.125.70 (1.00) | 107.923.19 (1.92) | 63.602.40 (1.13) | 56.712.22 (1.01) |
partial update Time to update the text of every 10th row (with 5 warmup iterations). | 13.081.70 (1.00) | 16.206.33 (1.01) | 13.163.60 (1.00) | 13.843.13 (1.00) | 133.3613.69 (8.33) | 22.170.79 (1.39) | 14.873.14 (1.00) | 15.382.36 (1.00) | 31.072.26 (1.94) | 14.526.75 (1.00) | 14.532.55 (1.00) | 17.651.75 (1.10) | 13.742.06 (1.00) | 16.851.68 (1.05) | 16.100.89 (1.01) | 18.390.97 (1.15) | 13.983.18 (1.00) | 16.231.04 (1.01) | 13.431.59 (1.00) | 15.212.78 (1.00) | 33.232.34 (2.08) | 15.460.99 (1.00) | 15.135.92 (1.00) |
select row Duration to highlight a row in response to a click on the row. (with 5 warmup iterations). | 10.404.92 (1.00) | 6.183.94 (1.00) | 4.511.67 (1.00) | 13.061.47 (1.00) | 126.824.66 (7.93) | 13.751.39 (1.00) | 11.464.75 (1.00) | 9.013.65 (1.00) | 18.521.34 (1.16) | 6.962.49 (1.00) | 10.373.36 (1.00) | 8.224.38 (1.00) | 9.762.42 (1.00) | 9.774.62 (1.00) | 9.904.14 (1.00) | 10.922.14 (1.00) | 8.304.31 (1.00) | 9.114.82 (1.00) | 9.744.19 (1.00) | 8.513.29 (1.00) | 23.852.90 (1.49) | 8.371.81 (1.00) | 7.375.14 (1.00) |
swap rows Time to swap 2 rows on a 1K table. (with 5 warmup iterations). | 13.551.12 (1.00) | 9.040.83 (1.00) | 9.840.84 (1.00) | 12.871.28 (1.00) | 130.668.05 (8.17) | 18.680.70 (1.17) | 9.841.60 (1.00) | 9.050.80 (1.00) | 26.861.24 (1.68) | 8.731.12 (1.00) | 9.730.68 (1.00) | 12.380.85 (1.00) | 9.971.34 (1.00) | 8.340.61 (1.00) | 11.500.72 (1.00) | 15.731.78 (1.00) | 7.950.55 (1.00) | 8.260.61 (1.00) | 10.561.54 (1.00) | 9.841.09 (1.00) | 30.443.15 (1.90) | 13.751.09 (1.00) | 8.040.48 (1.00) |
remove row Duration to remove a row. (with 5 warmup iterations). | 49.952.43 (1.49) | 33.632.81 (1.00) | 33.902.30 (1.01) | 58.953.22 (1.75) | 152.1910.73 (4.53) | 45.061.10 (1.34) | 34.001.95 (1.01) | 44.662.77 (1.33) | 62.671.88 (1.86) | 37.612.90 (1.12) | 50.233.46 (1.49) | 50.911.38 (1.51) | 60.803.69 (1.81) | 74.385.18 (2.21) | 54.622.65 (1.62) | 42.602.50 (1.27) | 45.882.91 (1.36) | 49.871.42 (1.48) | 35.192.38 (1.05) | 35.024.51 (1.04) | 68.053.02 (2.02) | 40.512.18 (1.20) | 36.314.74 (1.08) |
create many rows Duration to create 10,000 rows | 10656.35520.33 (8.01) | 1912.8361.35 (1.44) | 1866.1672.76 (1.40) | 1866.1375.82 (1.40) | 1845.7679.24 (1.39) | 1605.9224.62 (1.21) | 1390.1037.37 (1.04) | 1549.4549.00 (1.16) | 1596.8621.64 (1.20) | 1419.5035.48 (1.07) | 2197.9555.73 (1.65) | 2472.2451.87 (1.86) | 2755.2256.91 (2.07) | 2887.8576.66 (2.17) | 1856.2240.41 (1.39) | 3274.3657.58 (2.46) | 2059.7949.34 (1.55) | 2249.2673.78 (1.69) | 1374.9217.63 (1.03) | 1497.6423.55 (1.13) | 2814.8159.34 (2.11) | 1621.6828.61 (1.22) | 1331.1430.12 (1.00) |
append rows to large table Duration for adding 1000 rows on a table of 10,000 rows. | 2651.66960.96 (9.21) | 367.8852.97 (1.28) | 356.1743.90 (1.24) | 322.0011.91 (1.12) | 1964.31109.62 (6.82) | 470.2628.62 (1.63) | 315.2622.63 (1.09) | 307.3611.89 (1.07) | 496.1814.94 (1.72) | 290.726.65 (1.01) | 357.3013.21 (1.24) | 756.4172.82 (2.63) | 413.5438.45 (1.44) | 501.1971.46 (1.74) | 350.3914.10 (1.22) | 2683.9251.79 (9.32) | 333.2137.73 (1.16) | 390.4564.87 (1.36) | 310.9411.65 (1.08) | 302.868.77 (1.05) | 654.9817.46 (2.27) | 392.5213.66 (1.36) | 287.959.79 (1.00) |
clear rows Duration to clear the table filled with 10.000 rows. | 394.13108.30 (1.96) | 373.7039.36 (1.86) | 367.8834.09 (1.83) | 292.9116.55 (1.46) | 308.6511.19 (1.54) | 260.572.15 (1.30) | 201.005.42 (1.00) | 243.486.20 (1.21) | 234.524.77 (1.17) | 227.448.36 (1.13) | 274.7127.59 (1.37) | 285.729.20 (1.42) | 459.0212.43 (2.29) | 647.2750.13 (3.22) | 395.935.82 (1.97) | 280.4312.21 (1.40) | 337.238.58 (1.68) | 552.2655.92 (2.75) | 206.596.13 (1.03) | 262.005.18 (1.30) | 348.0610.89 (1.73) | 252.785.76 (1.26) | 200.866.58 (1.00) |
startup time Time for loading, parsing and starting up | 43.311.77 (1.14) | 104.132.08 (2.75) | 125.483.30 (3.32) | 130.274.44 (3.44) | 45.671.81 (1.21) | 58.051.96 (1.53) | 45.021.97 (1.19) | 48.659.10 (1.29) | 44.589.76 (1.18) | 45.071.63 (1.19) | 58.682.47 (1.55) | 112.053.08 (2.96) | 92.973.39 (2.46) | 92.671.21 (2.45) | 92.152.62 (2.43) | 49.541.95 (1.31) | 45.438.62 (1.20) | 132.973.67 (3.51) | 46.388.50 (1.23) | 37.845.95 (1.00) | 135.552.85 (3.58) | 53.212.65 (1.41) | 38.968.92 (1.03) |
slowdown geometric mean | 2.73 | 1.31 | 1.33 | 1.41 | 3.37 | 1.29 | 1.04 | 1.13 | 1.43 | 1.07 | 1.30 | 1.53 | 1.56 | 1.71 | 1.38 | 1.66 | 1.22 | 1.73 | 1.05 | 1.05 | 2.05 | 1.17 | 1.01 |
Datum v0.8.0 | angular v2.4.9-non-keyed | angular v4.0.0-non-keyed | aurelia v1.1.0 | choo v4.1.0 | cyclejs-dom v14.1.0 | dio v3.0.5 | domvm v2.1.3-non-keyed | hyperapp v0.6.0 | inferno v1.6.0-non-keyed | nx v1.0.0-beta.1.1.0-non-keyed | polymer v1.7.0 | ractive-edge | ractive v0.8.9-non-keyed | react v15.4.2-non-keyed | riot v3.0.7 | simulacra v2.0.4 | stem v0.2.60 | surplus v0.4.0-nonkeyed | svelte v1.0.1 | tsers v1.0.0 | vue v2.2.4-non-keyed | vanillajs-non-keyed | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
ready memory Memory usage after page load. | 4.330.12 (1.06) | 6.980.22 (1.71) | 7.380.18 (1.80) | 7.620.14 (1.86) | 4.290.12 (1.05) | 4.810.18 (1.18) | 4.280.12 (1.05) | 4.180.12 (1.02) | 4.100.12 (1.00) | 4.310.12 (1.05) | 4.730.15 (1.16) | 6.250.14 (1.53) | 5.900.14 (1.44) | 5.910.14 (1.45) | 5.710.13 (1.40) | 4.640.20 (1.13) | 4.370.21 (1.07) | 7.310.32 (1.79) | 4.200.12 (1.03) | 4.220.21 (1.03) | 8.780.20 (2.15) | 4.730.22 (1.16) | 4.090.17 (1.00) |
run memory Memory usage after adding 1000 rows. | 35.520.75 (5.19) | 14.330.51 (2.09) | 15.640.51 (2.29) | 15.360.54 (2.25) | 7.900.68 (1.16) | 10.020.55 (1.46) | 8.910.59 (1.30) | 10.230.49 (1.50) | 8.750.48 (1.28) | 8.920.59 (1.30) | 12.240.71 (1.79) | 12.530.70 (1.83) | 22.240.67 (3.25) | 24.040.69 (3.51) | 12.950.78 (1.89) | 10.900.52 (1.59) | 12.090.70 (1.77) | 14.740.72 (2.15) | 8.060.57 (1.18) | 7.910.58 (1.16) | 18.050.61 (2.64) | 10.730.53 (1.57) | 6.840.55 (1.00) |
Datum v0.8.0 | angular v2.4.9-non-keyed | angular v4.0.0-non-keyed | aurelia v1.1.0 | choo v4.1.0 | cyclejs-dom v14.1.0 | dio v3.0.5 | domvm v2.1.3-non-keyed | hyperapp v0.6.0 | inferno v1.6.0-non-keyed | nx v1.0.0-beta.1.1.0-non-keyed | polymer v1.7.0 | ractive-edge | ractive v0.8.9-non-keyed | react v15.4.2-non-keyed | riot v3.0.7 | simulacra v2.0.4 | stem v0.2.60 | surplus v0.4.0-nonkeyed | svelte v1.0.1 | tsers v1.0.0 | vue v2.2.4-non-keyed | vanillajs-non-keyed | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
create rows Duration for creating 1000 rows after the page loaded. | 383.6624.27 (2.86) | 197.2610.75 (1.47) | 203.9611.05 (1.52) | 187.357.48 (1.39) | 184.8910.16 (1.38) | 160.249.92 (1.19) | 141.236.05 (1.05) | 149.146.13 (1.11) | 156.126.19 (1.16) | 150.475.51 (1.12) | 218.9811.01 (1.63) | 226.6211.34 (1.69) | 299.7710.02 (2.23) | 333.4116.04 (2.48) | 188.6314.76 (1.40) | 309.7015.19 (2.31) | 180.0013.88 (1.34) | 230.6215.99 (1.72) | 134.314.91 (1.00) | 141.825.59 (1.06) | 252.0311.45 (1.88) | 167.0010.94 (1.24) | 134.524.56 (1.00) |
replace all rows Duration for updating all 1000 rows of the table (with 5 warmup iterations). | 1830.28624.70 (32.61) | 59.451.76 (1.06) | 61.086.55 (1.09) | 90.693.82 (1.62) | 180.9612.83 (3.22) | 72.959.49 (1.30) | 57.502.74 (1.02) | 66.242.21 (1.18) | 86.952.94 (1.55) | 60.232.58 (1.07) | 73.363.04 (1.31) | 67.743.38 (1.21) | 70.182.90 (1.25) | 67.743.58 (1.21) | 77.444.79 (1.38) | 65.243.13 (1.16) | 60.382.60 (1.08) | 236.875.62 (4.22) | 63.037.95 (1.12) | 56.125.70 (1.00) | 107.923.19 (1.92) | 63.602.40 (1.13) | 59.075.09 (1.05) |
partial update Time to update the text of every 10th row (with 5 warmup iterations). | 13.081.70 (1.00) | 16.206.33 (1.01) | 13.163.60 (1.00) | 13.843.13 (1.00) | 133.3613.69 (8.33) | 22.170.79 (1.39) | 14.873.14 (1.00) | 15.382.36 (1.00) | 31.072.26 (1.94) | 14.526.75 (1.00) | 14.532.55 (1.00) | 17.651.75 (1.10) | 13.742.06 (1.00) | 16.851.68 (1.05) | 16.100.89 (1.01) | 18.390.97 (1.15) | 13.983.18 (1.00) | 16.231.04 (1.01) | 13.431.59 (1.00) | 15.212.78 (1.00) | 33.232.34 (2.08) | 15.460.99 (1.00) | 14.555.81 (1.00) |
select row Duration to highlight a row in response to a click on the row. (with 5 warmup iterations). | 10.404.92 (1.00) | 6.183.94 (1.00) | 4.511.67 (1.00) | 13.061.47 (1.00) | 126.824.66 (7.93) | 13.751.39 (1.00) | 11.464.75 (1.00) | 9.013.65 (1.00) | 18.521.34 (1.16) | 6.962.49 (1.00) | 10.373.36 (1.00) | 8.224.38 (1.00) | 9.762.42 (1.00) | 9.774.62 (1.00) | 9.904.14 (1.00) | 10.922.14 (1.00) | 8.304.31 (1.00) | 9.114.82 (1.00) | 9.744.19 (1.00) | 8.513.29 (1.00) | 23.852.90 (1.49) | 8.371.81 (1.00) | 9.593.69 (1.00) |
swap rows Time to swap 2 rows on a 1K table. (with 5 warmup iterations). | 13.551.12 (1.00) | 9.040.83 (1.00) | 9.840.84 (1.00) | 12.871.28 (1.00) | 130.668.05 (8.17) | 18.680.70 (1.17) | 9.841.60 (1.00) | 9.050.80 (1.00) | 26.861.24 (1.68) | 8.731.12 (1.00) | 9.730.68 (1.00) | 12.380.85 (1.00) | 9.971.34 (1.00) | 8.340.61 (1.00) | 11.500.72 (1.00) | 15.731.78 (1.00) | 7.950.55 (1.00) | 8.260.61 (1.00) | 10.561.54 (1.00) | 9.841.09 (1.00) | 30.443.15 (1.90) | 13.751.09 (1.00) | 8.240.82 (1.00) |
remove row Duration to remove a row. (with 5 warmup iterations). | 49.952.43 (1.49) | 33.632.81 (1.00) | 33.902.30 (1.01) | 58.953.22 (1.75) | 152.1910.73 (4.53) | 45.061.10 (1.34) | 34.001.95 (1.01) | 44.662.77 (1.33) | 62.671.88 (1.86) | 37.612.90 (1.12) | 50.233.46 (1.49) | 50.911.38 (1.51) | 60.803.69 (1.81) | 74.385.18 (2.21) | 54.622.65 (1.62) | 42.602.50 (1.27) | 45.882.91 (1.36) | 49.871.42 (1.48) | 35.192.38 (1.05) | 35.024.51 (1.04) | 68.053.02 (2.02) | 40.512.18 (1.20) | 35.962.85 (1.07) |
create many rows Duration to create 10,000 rows | 10656.35520.33 (7.95) | 1912.8361.35 (1.43) | 1866.1672.76 (1.39) | 1866.1375.82 (1.39) | 1845.7679.24 (1.38) | 1605.9224.62 (1.20) | 1390.1037.37 (1.04) | 1549.4549.00 (1.16) | 1596.8621.64 (1.19) | 1419.5035.48 (1.06) | 2197.9555.73 (1.64) | 2472.2451.87 (1.84) | 2755.2256.91 (2.06) | 2887.8576.66 (2.15) | 1856.2240.41 (1.38) | 3274.3657.58 (2.44) | 2059.7949.34 (1.54) | 2249.2673.78 (1.68) | 1374.9217.63 (1.03) | 1497.6423.55 (1.12) | 2814.8159.34 (2.10) | 1621.6828.61 (1.21) | 1340.6921.39 (1.00) |
append rows to large table Duration for adding 1000 rows on a table of 10,000 rows. | 2651.66960.96 (9.12) | 367.8852.97 (1.27) | 356.1743.90 (1.23) | 322.0011.91 (1.11) | 1964.31109.62 (6.76) | 470.2628.62 (1.62) | 315.2622.63 (1.08) | 307.3611.89 (1.06) | 496.1814.94 (1.71) | 290.726.65 (1.00) | 357.3013.21 (1.23) | 756.4172.82 (2.60) | 413.5438.45 (1.42) | 501.1971.46 (1.72) | 350.3914.10 (1.21) | 2683.9251.79 (9.23) | 333.2137.73 (1.15) | 390.4564.87 (1.34) | 310.9411.65 (1.07) | 302.868.77 (1.04) | 654.9817.46 (2.25) | 392.5213.66 (1.35) | 292.218.42 (1.01) |
clear rows Duration to clear the table filled with 10.000 rows. | 394.13108.30 (2.27) | 373.7039.36 (2.15) | 367.8834.09 (2.12) | 292.9116.55 (1.69) | 308.6511.19 (1.78) | 260.572.15 (1.50) | 201.005.42 (1.16) | 243.486.20 (1.40) | 234.524.77 (1.35) | 227.448.36 (1.31) | 274.7127.59 (1.58) | 285.729.20 (1.65) | 459.0212.43 (2.65) | 647.2750.13 (3.73) | 395.935.82 (2.28) | 280.4312.21 (1.62) | 337.238.58 (1.94) | 552.2655.92 (3.18) | 206.596.13 (1.19) | 262.005.18 (1.51) | 348.0610.89 (2.01) | 252.785.76 (1.46) | 173.495.02 (1.00) |
startup time Time for loading, parsing and starting up | 43.311.77 (1.14) | 104.132.08 (2.75) | 125.483.30 (3.32) | 130.274.44 (3.44) | 45.671.81 (1.21) | 58.051.96 (1.53) | 45.021.97 (1.19) | 48.659.10 (1.29) | 44.589.76 (1.18) | 45.071.63 (1.19) | 58.682.47 (1.55) | 112.053.08 (2.96) | 92.973.39 (2.46) | 92.671.21 (2.45) | 92.152.62 (2.43) | 49.541.95 (1.31) | 45.438.62 (1.20) | 132.973.67 (3.51) | 46.388.50 (1.23) | 37.845.95 (1.00) | 135.552.85 (3.58) | 53.212.65 (1.41) | 40.457.83 (1.07) |
slowdown geometric mean | 2.76 | 1.33 | 1.35 | 1.43 | 3.42 | 1.31 | 1.05 | 1.14 | 1.45 | 1.08 | 1.32 | 1.55 | 1.58 | 1.73 | 1.40 | 1.69 | 1.23 | 1.75 | 1.07 | 1.07 | 2.07 | 1.19 | 1.02 |
Datum v0.8.0 | angular v2.4.9-non-keyed | angular v4.0.0-non-keyed | aurelia v1.1.0 | choo v4.1.0 | cyclejs-dom v14.1.0 | dio v3.0.5 | domvm v2.1.3-non-keyed | hyperapp v0.6.0 | inferno v1.6.0-non-keyed | nx v1.0.0-beta.1.1.0-non-keyed | polymer v1.7.0 | ractive-edge | ractive v0.8.9-non-keyed | react v15.4.2-non-keyed | riot v3.0.7 | simulacra v2.0.4 | stem v0.2.60 | surplus v0.4.0-nonkeyed | svelte v1.0.1 | tsers v1.0.0 | vue v2.2.4-non-keyed | vanillajs-non-keyed | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
ready memory Memory usage after page load. | 4.330.12 (1.07) | 6.980.22 (1.73) | 7.380.18 (1.83) | 7.620.14 (1.89) | 4.290.12 (1.06) | 4.810.18 (1.19) | 4.280.12 (1.06) | 4.180.12 (1.03) | 4.100.12 (1.01) | 4.310.12 (1.07) | 4.730.15 (1.17) | 6.250.14 (1.55) | 5.900.14 (1.46) | 5.910.14 (1.46) | 5.710.13 (1.41) | 4.640.20 (1.15) | 4.370.21 (1.08) | 7.310.32 (1.81) | 4.200.12 (1.04) | 4.220.21 (1.04) | 8.780.20 (2.17) | 4.730.22 (1.17) | 4.040.12 (1.00) |
run memory Memory usage after adding 1000 rows. | 35.520.75 (5.14) | 14.330.51 (2.07) | 15.640.51 (2.26) | 15.360.54 (2.22) | 7.900.68 (1.14) | 10.020.55 (1.45) | 8.910.59 (1.29) | 10.230.49 (1.48) | 8.750.48 (1.27) | 8.920.59 (1.29) | 12.240.71 (1.77) | 12.530.70 (1.81) | 22.240.67 (3.22) | 24.040.69 (3.48) | 12.950.78 (1.87) | 10.900.52 (1.58) | 12.090.70 (1.75) | 14.740.72 (2.13) | 8.060.57 (1.17) | 7.910.58 (1.14) | 18.050.61 (2.61) | 10.730.53 (1.55) | 6.910.59 (1.00) |