Skip to content

Commit 89220e4

Browse files
committed
add more test cases & framework versioning
1 parent 671959e commit 89220e4

File tree

295 files changed

+3224
-3802
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

295 files changed

+3224
-3802
lines changed

.gitignore

+7
Original file line numberDiff line numberDiff line change
@@ -40,3 +40,10 @@ webdriver-java/chromedriver
4040

4141
tests-browser-perf/
4242
tests-protractor-perf/
43+
44+
angular-v2.0.0-beta.15/app/app.js
45+
angular-v2.0.0-beta.15/app/app.js.map
46+
angular-v2.0.0-beta.15/app/main.js
47+
angular-v2.0.0-beta.15/app/main.js.map
48+
angular-v2.0.0-beta.2/app/app.js
49+
angular-v2.0.0-beta.2/app/app.js.map

LICENSE

100644100755
File mode changed.

README.md

100644100755
+280-12
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,16 @@ This work is derived from a benchmark that Richard Ayotte published on https://g
66

77
Thanks for the great work.
88

9+
## Changes
10+
11+
- more test cases
12+
- add versioning for testing mulitple versions of the same platform
13+
- tweaking on test runs (allows to re-runs all the cases/platforms)
14+
915
## Prerequsites
1016

11-
Have node.js installed. If you want to do yourself a favour use nvm for that. The benchmark has been tested with node 5.1+.
17+
Have *node.js* installed. If you want to do yourself a favour use nvm for that. The benchmark has been tested with node 5.1+.
18+
You will also need *mvn* for *selenium*.
1219

1320
## Building
1421

@@ -41,6 +48,15 @@ Most actions will try to measure the duration and print it to the console. Depen
4148
* partial update: Time to update the text of every 10th row. A few iterations to warmup the javascript engine are performed before measuring.
4249
* select row: Duration to highlight a row in response to a click on the row. A few iterations to warmup the javascript engine are performed before measuring.
4350
* remove row: Duration to remove a row. A few iterations to warmup the javascript engine are performed before measuring.
51+
* hide all: Time for hiding all the rows
52+
* show all: Timne for showing all the rows (after being hidden)
53+
* create lots of rows: Time for creating a table lots a rows (currently 10.000).
54+
* add 1000 rows after lots of rows: Time for adding 1000 rows on a table of add 1000 rows after lots of rows.
55+
* clear rows: Time to clear the table filled with 10.000 rows
56+
* clear rows a 2nd time: Time to clear the table filled with 10.000 rows. But warmed up with only one iteration.
57+
* select row on big list: Time to select a row on a 10K table.
58+
* swap rows: Time to swap 2 rows (1K table).
59+
* recycle rows: Time to create 1000 rows after clearing a 1K table.
4460

4561
## Execute the benchmarks with selenium
4662

@@ -55,16 +71,268 @@ Open [http://localhost:8080/webdriver-java/chart.html](http://localhost:8080/web
5571

5672
A test showing the durations on my machine can be seen [here](https://rawgit.com/krausest/js-framework-benchmark/master/webdriver-java/chart.html)
5773

58-
## Execute the benchmarks with protractor and benchpress [deprecated]
59-
60-
This uses the work of ShMcK [Framework-Performance-Tests-with-Meteor](https://github.com/ShMcK/Framework-Performance-Tests-with-Meteor) who put Protractor and BenchPress wonderfully to work.
61-
62-
`npm start`
63-
64-
`cd tests`
65-
`npm run webdriver-manager`
66-
open a new shell in the tests directory
67-
`npm run protractor`
74+
## Results
6875

69-
Open [http://localhost:8080/tests/chart.html](http://localhost:8080/tests/chart.html) for the results
76+
<table>
77+
<thead>
78+
<tr>
79+
<th></th>
80+
<th>angular v1.5.3</th>
81+
<th>angular v2.0.0-beta.2</th>
82+
<th>angular v2.0.0-beta.15</th>
83+
<th>aurelia</th>
84+
<th>ember</th>
85+
<th>mithril v0.2.3</th>
86+
<th>plastiq v1.28.0</th>
87+
<th>preact v2.8.3</th>
88+
<th>ractive v0.7.3</th>
89+
<th>react v0.14.8</th>
90+
<th>react-lite v0.0.18</th>
91+
<th>react-lite v0.15.9</th>
92+
<th>vidom v0.1.7</th>
93+
<th>vue v1.0.21</th>
94+
</tr>
95+
</thead>
96+
<tbody>
97+
<tr>
98+
<th>create 1000 rows</th>
99+
<td style="background-color:#FFEC84">873.34</td>
100+
<td style="background-color:#63BF7C">577.72</td>
101+
<td style="background-color:#FFEC84">834.64</td>
102+
<td style="background-color:#63BF7C">650.42</td>
103+
<td style="background-color:#F9696C">1922</td>
104+
<td style="background-color:#FFEC84">942.53</td>
105+
<td style="background-color:#63BF7C">654.64</td>
106+
<td style="background-color:#FFEC84">820.54</td>
107+
<td style="background-color:#F9696C">1586.52</td>
108+
<td style="background-color:#F9696C">1378.46</td>
109+
<td style="background-color:#63BF7C">639.20</td>
110+
<td style="background-color:#63BF7C">488.94</td>
111+
<td style="background-color:#63BF7C">489.97</td>
112+
<td style="background-color:#FFEC84">783.28</td>
113+
</tr>
114+
<tr>
115+
<th>update 1000 rows (hot)</th>
116+
<td style="background-color:#F9696C">908.34</td>
117+
<td style="background-color:#FFEC84">631.91</td>
118+
<td style="background-color:#FFEC84">823.20</td>
119+
<td style="background-color:#63BF7C">387.99</td>
120+
<td style="background-color:#F9696C">1536.66</td>
121+
<td style="background-color:#F9696C">929.53</td>
122+
<td style="background-color:#FFEC84">683.63</td>
123+
<td style="background-color:#63BF7C">403.20</td>
124+
<td style="background-color:#63BF7C">253.11</td>
125+
<td style="background-color:#FFEC84">786.77</td>
126+
<td style="background-color:#FFEC84">662.68</td>
127+
<td style="background-color:#FFEC84">598.42</td>
128+
<td style="background-color:#FFEC84">500.81</td>
129+
<td style="background-color:#FFEC84">766.75</td>
130+
</tr>
131+
<tr>
132+
<th>partial update</th>
133+
<td style="background-color:#63BF7C">54.90</td>
134+
<td style="background-color:#63BF7C">44.40</td>
135+
<td style="background-color:#63BF7C">39.54</td>
136+
<td style="background-color:#63BF7C">40.54</td>
137+
<td style="background-color:#F9696C">136.7</td>
138+
<td style="background-color:#F9696C">340.51</td>
139+
<td style="background-color:#F9696C">275.82</td>
140+
<td style="background-color:#FFEC84">95.24</td>
141+
<td style="background-color:#F9696C">115.75</td>
142+
<td style="background-color:#FFEC84">67.30</td>
143+
<td style="background-color:#63BF7C">60.12</td>
144+
<td style="background-color:#FFEC84">77.57</td>
145+
<td style="background-color:#FFEC84">64.36</td>
146+
<td style="background-color:#63BF7C">52.28</td>
147+
</tr>
148+
<tr>
149+
<th>select row</th>
150+
<td style="background-color:#63BF7C">22.33</td>
151+
<td style="background-color:#63BF7C">13.25</td>
152+
<td style="background-color:#63BF7C">18.71</td>
153+
<td style="background-color:#F9696C">78.85</td>
154+
<td style="background-color:#F9696C">135.79</td>
155+
<td style="background-color:#F9696C">342.23</td>
156+
<td style="background-color:#F9696C">248.09</td>
157+
<td style="background-color:#FFEC84">31.54</td>
158+
<td style="background-color:#FFEC84">30.62</td>
159+
<td style="background-color:#FFEC84">29.65</td>
160+
<td style="background-color:#FFEC84">29.77</td>
161+
<td style="background-color:#FFEC84">48.27</td>
162+
<td style="background-color:#FFEC84">35.01</td>
163+
<td style="background-color:#FFEC84">37.53</td>
164+
</tr>
165+
<tr>
166+
<th>remove row</th>
167+
<td style="background-color:#63BF7C">262.76</td>
168+
<td style="background-color:#FFEC84">523</td>
169+
<td style="background-color:#FFEC84">534.21</td>
170+
<td style="background-color:#FFEC84">336.19</td>
171+
<td style="background-color:#FFEC84">379.36</td>
172+
<td style="background-color:#F9696C">595.26</td>
173+
<td style="background-color:#FFEC84">481.13</td>
174+
<td style="background-color:#FFEC84">359.71</td>
175+
<td style="background-color:#F9696C">713.19</td>
176+
<td style="background-color:#63BF7C">292.19</td>
177+
<td style="background-color:#F9696C">701.93</td>
178+
<td style="background-color:#63BF7C">268.97</td>
179+
<td style="background-color:#63BF7C">287.80</td>
180+
<td style="background-color:#63BF7C">277.01</td>
181+
</tr>
182+
<tr>
183+
<th>hide all</th>
184+
<td style="background-color:#FFEC84">165.22</td>
185+
<td style="background-color:#FFEC84">149.77</td>
186+
<td style="background-color:#FFEC84">167.63</td>
187+
<td style="background-color:#FFEC84">204.35</td>
188+
<td style="background-color:#F9696C">377.38</td>
189+
<td style="background-color:#63BF7C">100.72</td>
190+
<td style="background-color:#FFEC84">118.67</td>
191+
<td style="background-color:#FFEC84">126.69</td>
192+
<td style="background-color:#F9696C">945.73</td>
193+
<td style="background-color:#FFEC84">112.16</td>
194+
<td style="background-color:#63BF7C">87.79</td>
195+
<td style="background-color:#63BF7C">100.11</td>
196+
<td style="background-color:#63BF7C">99.73</td>
197+
<td style="background-color:#FFEC84">126.92</td>
198+
</tr>
199+
<tr>
200+
<th>show all</th>
201+
<td style="background-color:#FFEC84">709.41</td>
202+
<td style="background-color:#63BF7C">529.49</td>
203+
<td style="background-color:#FFEC84">720.87</td>
204+
<td style="background-color:#63BF7C">576.89</td>
205+
<td style="background-color:#F9696C">1401.37</td>
206+
<td style="background-color:#F9696C">835.07</td>
207+
<td style="background-color:#FFEC84">606.25</td>
208+
<td style="background-color:#FFEC84">628.67</td>
209+
<td style="background-color:#F9696C">1050.97</td>
210+
<td style="background-color:#FFEC84">696.13</td>
211+
<td style="background-color:#63BF7C">535.08</td>
212+
<td style="background-color:#63BF7C">414.99</td>
213+
<td style="background-color:#63BF7C">431.02</td>
214+
<td style="background-color:#FFEC84">687.59</td>
215+
</tr>
216+
<tr>
217+
<th>create lots of rows</th>
218+
<td style="background-color:#FFEC84">7112.42</td>
219+
<td style="background-color:#63BF7C">5440.13</td>
220+
<td style="background-color:#FFEC84">7855.89</td>
221+
<td style="background-color:#63BF7C">988.08</td>
222+
<td style="background-color:#F9696C">13556.33</td>
223+
<td style="background-color:#F9696C">9363</td>
224+
<td style="background-color:#63BF7C">5990.74</td>
225+
<td style="background-color:#FFEC84">7603.70</td>
226+
<td style="background-color:#F9696C">27668.03</td>
227+
<td style="background-color:#FFEC84">8100.18</td>
228+
<td style="background-color:#63BF7C">5699.20</td>
229+
<td style="background-color:#63BF7C">2763.71</td>
230+
<td style="background-color:#63BF7C">4157.74</td>
231+
<td style="background-color:#FFEC84">7363.43</td>
232+
</tr>
233+
<tr>
234+
<th>add 1000 rows after lots of rows</th>
235+
<td style="background-color:#FFEC84">2581.28</td>
236+
<td style="background-color:#FFEC84">2010.98</td>
237+
<td style="background-color:#FFEC84">2348.8</td>
238+
<td style="background-color:#FFEC84">2245.09</td>
239+
<td style="background-color:#F9696C">3759.77</td>
240+
<td style="background-color:#F9696C">6266.81</td>
241+
<td style="background-color:#F9696C">3161.71</td>
242+
<td style="background-color:#63BF7C">1220.29</td>
243+
<td style="background-color:#F9696C">9454.74</td>
244+
<td style="background-color:#63BF7C">1172.52</td>
245+
<td style="background-color:#63BF7C">984.77</td>
246+
<td style="background-color:#F9696C">4271.65</td>
247+
<td style="background-color:#63BF7C">882.38</td>
248+
<td style="background-color:#FFEC84">2282.07</td>
249+
</tr>
250+
<tr>
251+
<th>clear rows</th>
252+
<td style="background-color:#F9696C">3436.78</td>
253+
<td style="background-color:#FFEC84">1286</td>
254+
<td style="background-color:#FFEC84">1503.39</td>
255+
<td style="background-color:#FFEC84">1863.18</td>
256+
<td style="background-color:#F9696C">2897.75</td>
257+
<td style="background-color:#63BF7C">1003.32</td>
258+
<td style="background-color:#63BF7C">801.33</td>
259+
<td style="background-color:#63BF7C">885.20</td>
260+
<td style="background-color:#F9696C">9520.64</td>
261+
<td style="background-color:#FFEC84">1085.85</td>
262+
<td style="background-color:#63BF7C">778.67</td>
263+
<td style="background-color:#63BF7C">959.29</td>
264+
<td style="background-color:#FFEC84">1203.80</td>
265+
<td style="background-color:#FFEC84">1240.18</td>
266+
</tr>
267+
<tr>
268+
<th>clear rows a 2nd time</th>
269+
<td style="background-color:#F9696C">6535.44</td>
270+
<td style="background-color:#FFEC84">1746.36</td>
271+
<td style="background-color:#FFEC84">1342.49</td>
272+
<td style="background-color:#FFEC84">1800.42</td>
273+
<td style="background-color:#F9696C">4243.42</td>
274+
<td style="background-color:#63BF7C">1001.68</td>
275+
<td style="background-color:#63BF7C">771.45</td>
276+
<td style="background-color:#63BF7C">905.80</td>
277+
<td style="background-color:#F9696C">6494.80</td>
278+
<td style="background-color:#FFEC84">1037.78</td>
279+
<td style="background-color:#63BF7C">890.35</td>
280+
<td style="background-color:#63BF7C">934.57</td>
281+
<td style="background-color:#FFEC84">1989.56</td>
282+
<td style="background-color:#FFEC84">1198.84</td>
283+
</tr>
284+
<tr>
285+
<th>select row on big list</th>
286+
<td style="background-color:#63BF7C">127</td>
287+
<td style="background-color:#63BF7C">89.45</td>
288+
<td style="background-color:#FFEC84">155.60</td>
289+
<td style="background-color:#FFEC84">403.55</td>
290+
<td style="background-color:#F9696C">1321.67</td>
291+
<td style="background-color:#F9696C">3095.11</td>
292+
<td style="background-color:#F9696C">2099.31</td>
293+
<td style="background-color:#63BF7C">132.94</td>
294+
<td style="background-color:#FFEC84">246.63</td>
295+
<td style="background-color:#63BF7C">130.01</td>
296+
<td style="background-color:#FFEC84">163.83</td>
297+
<td style="background-color:#F9696C">3031.96</td>
298+
<td style="background-color:#FFEC84">208.92</td>
299+
<td style="background-color:#FFEC84">314.81</td>
300+
</tr>
301+
<tr>
302+
<th>swap rows</th>
303+
<td style="background-color:#FFEC84">208.48</td>
304+
<td style="background-color:#FFEC84">173.75</td>
305+
<td style="background-color:#FFEC84">191.25</td>
306+
<td style="background-color:#63BF7C">68.10</td>
307+
<td style="background-color:#F9696C">262.18</td>
308+
<td style="background-color:#F9696C">577.63</td>
309+
<td style="background-color:#F9696C">405.83</td>
310+
<td style="background-color:#63BF7C">60.38</td>
311+
<td style="background-color:#FFEC84">113.91</td>
312+
<td style="background-color:#FFEC84">211.90</td>
313+
<td style="background-color:#FFEC84">191.58</td>
314+
<td style="background-color:#FFEC84">185.90</td>
315+
<td style="background-color:#FFEC84">233.98</td>
316+
<td style="background-color:#FFEC84">202.96</td>
317+
</tr>
318+
<tr>
319+
<th>recycle rows</th>
320+
<td style="background-color:#FFEC84">728.37</td>
321+
<td style="background-color:#63BF7C">532.98</td>
322+
<td style="background-color:#FFEC84">729.63</td>
323+
<td style="background-color:#63BF7C">581.28</td>
324+
<td style="background-color:#F9696C">1343.42</td>
325+
<td style="background-color:#FFEC84">846.28</td>
326+
<td style="background-color:#FFEC84">624.49</td>
327+
<td style="background-color:#FFEC84">656.65</td>
328+
<td style="background-color:#F9696C">1037.64</td>
329+
<td style="background-color:#FFEC84">713.14</td>
330+
<td style="background-color:#63BF7C">558.03</td>
331+
<td style="background-color:#63BF7C">431.85</td>
332+
<td style="background-color:#63BF7C">449.70</td>
333+
<td style="background-color:#FFEC84">696.36</td>
334+
</tr>
335+
</tbody>
336+
</table>
70337

338+
Those results have been generated with Chromium 48.0.2564.116 on a Mac mini 2010.

angular/index.html renamed to angular-v1.5.3/index.html

+8-3
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<html lang="en">
33
<head>
44
<meta charset="UTF-8">
5-
<title>Angular</title>
5+
<title>Angular v1.5.3</title>
66
<link href="../css/bootstrap/dist/css/bootstrap.min.css" rel="stylesheet"/>
77
<link href="../css/main.css" rel="stylesheet"/>
88
<script src='dist/main.js'></script>
@@ -12,12 +12,17 @@
1212
<div class="jumbotron">
1313
<div class="row">
1414
<div class="col-md-8">
15-
<h1>Angular</h1>
15+
<h1>Angular v1.5.3</h1>
1616
</div>
1717
<div class="col-md-4">
18-
<button type="button" class="btn btn-primary btn-block" id="add" ng-click="homeController.add()">Add 10 rows</button>
18+
<button type="button" class="btn btn-primary btn-block" id="add" ng-click="homeController.add()">Add 1000 rows</button>
1919
<button type="button" class="btn btn-primary btn-block" id="run" ng-click="homeController.run()">Create 1000 rows</button>
2020
<button type="button" class="btn btn-primary btn-block" id="update" ng-click="homeController.update()">Update every 10th row</button>
21+
<button type="button" class="btn btn-primary btn-block" id="hideall" ng-click="homeController.hideAll()">HideAll</button>
22+
<button type="button" class="btn btn-primary btn-block" id="showall" ng-click="homeController.showAll()">ShowAll</button>
23+
<button type="button" class="btn btn-primary btn-block" id="runlots" ng-click="homeController.runLots()">Create lots of rows</button>
24+
<button type="button" class="btn btn-primary btn-block" id="clear" ng-click="homeController.clear()">Clear</button>
25+
<button type="button" class="btn btn-primary btn-block" id="swaprows" ng-click="homeController.swapRows()">Swap Rows</button>
2126
<h3 id="duration"><span class="glyphicon glyphicon-remove" aria-hidden="true"></span>&nbsp;</h3>
2227
</div>
2328
</div>

angular/package.json renamed to angular-v1.5.3/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
"webpack": "^1.7.2"
2525
},
2626
"dependencies": {
27-
"angular": "^1.4.3",
27+
"angular": "1.5.3",
2828
"jquery": "*"
2929
}
3030
}

0 commit comments

Comments
 (0)