From ee0a6108d1632580bbb161179796487c4991d8da Mon Sep 17 00:00:00 2001
From: Stefan Krause 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.
- Non keyed implementations are allowed to reuse existing dom elements.
+ 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.
- Keyed results
Duration in milliseconds (Slowdown = Duration / Fastest)
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 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 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 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 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 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 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 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 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 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 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 Memory allocation in MBs
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 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 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 results
Duration in milliseconds (Slowdown = Duration / Fastest)
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 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 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 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 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 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 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 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 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 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 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 Memory allocation in MBs
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 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 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 results
Duration in milliseconds (Slowdown = Duration / Fastest)
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 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 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 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 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 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 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 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 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 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 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 Memory allocation in MBs
\ No newline at end of file
+ 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 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 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) |