Implement a new design for JetStream2
[WebKit-https.git] / PerformanceTests / ChangeLog
1 2019-03-14  Jon Davis  <jond@apple.com>
2
3         Implement a new design for JetStream2
4         https://bugs.webkit.org/show_bug.cgi?id=195492
5
6         Reviewed by Saam Barati.
7
8         * JetStream2/JetStream.css:
9         (html):
10         (body):
11         (::selection):
12         (main):
13         (.logo):
14         (.logo .logo-image):
15         (#jetstreams):
16         (#jetstreams svg):
17         (.summary):
18         (.summary + .summary):
19         (.summary:empty):
20         (article, .summary):
21         (h1):
22         (h2, h3, h4, h5, h6):
23         (h4, h5, h6):
24         (p):
25         (h5, h6):
26         (h6):
27         (a:link,):
28         (a:hover,):
29         (#status):
30         (#status label,):
31         (a.button):
32         (#status.loading):
33         (#status.error):
34         (.error h2, .error p):
35         (.error h2):
36         (#result-summary):
37         (#result-summary label):
38         (#result-summary .score):
39         (#result-summary .score .interval):
40         (#results):
41         (.benchmark):
42         (.benchmark h3, .benchmark h4, .benchmark .result, .benchmark label):
43         (.benchmark-running h4, .benchmark-running .result, .benchmark-running label):
44         (.benchmark-done h3, .benchmark-done h4, .benchmark-done .result, .benchmark-done label):
45         (.benchmark h3):
46         (.benchmark-running h3):
47         (.benchmark-done h3):
48         (.benchmark h3 a,):
49         (.benchmark-done h3 a:hover):
50         (.benchmark h4):
51         (.benchmark-done h4):
52         (.benchmark p,):
53         (.benchmark .result):
54         (.benchmark-done .result):
55         (.benchmark label):
56         (.benchmark-done label):
57         (@keyframes fadein):
58         (to):
59         (@keyframes scaledown):
60         (@keyframes shine):
61         (100%):
62         (@keyframes swingin):
63         (@media (max-width: 415px)):
64         (#logo): Deleted.
65         (p.summary): Deleted.
66         (p.summary + p.summary): Deleted.
67         (p.summary:empty): Deleted.
68         (p:first-of-type): Deleted.
69         (#status a:link): Deleted.
70         (.interval): Deleted.
71         (a:link, a:visited): Deleted.
72         (a:link:hover): Deleted.
73         (table): Deleted.
74         (td, th): Deleted.
75         (th): Deleted.
76         (tr:first-child > th:nth-child(even)): Deleted.
77         (tr:nth-child(even):not(:first-child, .benchmark-running)): Deleted.
78         (.result): Deleted.
79         (.benchmark-running): Deleted.
80         (:not(.benchmark-running) .result): Deleted.
81         (.benchmark-running .result): Deleted.
82         (.benchmark-name): Deleted.
83         (.result.category,): Deleted.
84         (.benchmark-name:not(.category):not(.geometric-mean)): Deleted.
85         (.geometric-mean): Deleted.
86         (.benchmark-name:not(:first-child)): Deleted.
87         (.benchmark-name a:link,): Deleted.
88         (.highlighted-result): Deleted.
89         * JetStream2/JetStream2Logo.svg: Added.
90         * JetStream2/JetStreamDriver.js:
91         (updateUI):
92         (Driver.prototype.async.start):
93         (Driver.prototype.prepareToRun.text.div.id.string_appeared_here.h3):
94         (Driver.prototype.prepareToRun.text.span):
95         (Driver.prototype.prepareToRun.a.h3.h4):
96         (Driver.prototype.prepareToRun.text.div):
97         (Driver.prototype.async.initialize):
98         (Driver.prototype.async.fetchResources.prototype.statusElement.onclick):
99         (prototype.fetchResources):
100         (prototype.updateUIBeforeRun):
101         (prototype.updateUIAfterRun):
102         (Driver.prototype.async.fetchResources.statusElement.innerHTML.a.href.string_appeared_here):
103         (Driver.prototype.async.fetchResources):
104         (Driver.prototype.prepareToRun.text.tr.id.string_appeared_here.FIXME.link.to.benchmark.explanation.td): Deleted.
105         * JetStream2/clouds.svg: Added.
106         * JetStream2/in-depth.html:
107         * JetStream2/index.html:
108         * JetStream2/jetstreams.svg: Added.
109
110 2019-03-11  Caio Lima  <ticaiolima@gmail.com>
111
112         [ESNext][BigInt] Implement "~" unary operation
113         https://bugs.webkit.org/show_bug.cgi?id=182216
114
115         Reviewed by Keith Miller.
116
117         * BigIntBench/big-int-simple-bit-not.js: Added.
118
119 2019-03-04  Saam Barati  <sbarati@apple.com>
120
121         Add a detailed summary page for JetStream 2
122         https://bugs.webkit.org/show_bug.cgi?id=195014
123
124         Rubber-stamped by Darin Adler.
125
126         * JetStream2/JetStream.css:
127         (a:link, a:visited):
128         * JetStream2/in-depth.html: Added.
129
130 2019-02-08  Saam barati  <sbarati@apple.com>
131
132         Update JetStream2 CLI to not print "ms" since we now just print the score values
133         https://bugs.webkit.org/show_bug.cgi?id=193981
134
135         Reviewed by Yusuke Suzuki.
136
137         * JetStream2/JetStreamDriver.js:
138         (DefaultBenchmark.prototype.updateUIAfterRun):
139         (DefaultBenchmark):
140         (WSLBenchmark.prototype.updateUIAfterRun):
141         (WSLBenchmark):
142         (WasmBenchmark.prototype.updateUIAfterRun):
143         (WasmBenchmark):
144
145 2019-01-31  Sihui Liu  <sihui_liu@apple.com>
146
147         REGRESSION (r240358): IndexedDB/large-binary-keys.html and IndexedDB/large-string-keys.html perf tests failing
148         https://bugs.webkit.org/show_bug.cgi?id=193956
149         <rdar://problem/47623109>
150
151         Reviewed by Ryosuke Niwa.
152
153         r240358 sets default IDB quota as 50 MB for single test, we need to increase that for big tests. 
154
155         * IndexedDB/large-binary-keys.html:
156         * IndexedDB/large-string-keys.html:
157
158 2019-01-18  Saam Barati  <sbarati@apple.com>
159
160         Use scores everywhere in JetStream2's UI
161         https://bugs.webkit.org/show_bug.cgi?id=193593
162
163         Reviewed by Keith Miller.
164
165         * JetStream2/JetStreamDriver.js:
166         (DefaultBenchmark.prototype.processResults):
167         (DefaultBenchmark.prototype.get score):
168         (DefaultBenchmark.scoreDescription):
169         (WSLBenchmark.prototype.processResults):
170         (WSLBenchmark.prototype.get score):
171         (WSLBenchmark.scoreDescription):
172         (WasmBenchmark.prototype.processResults):
173         (WasmBenchmark.prototype.get score):
174         (WasmBenchmark.scoreDescription):
175         * JetStream2/index.html:
176
177 2019-01-18  Jer Noble  <jer.noble@apple.com>
178
179         SDK_VARIANT build destinations should be separate from non-SDK_VARIANT builds
180         https://bugs.webkit.org/show_bug.cgi?id=189553
181
182         Reviewed by Tim Horton.
183
184         * MediaTime/Configurations/Base.xcconfig:
185         * MediaTime/Configurations/SDKVariant.xcconfig: Added.
186
187 2019-01-17  Truitt Savell  <tsavell@apple.com>
188
189         Unreviewed, rolling out r240124.
190
191         This commit broke an internal build.
192
193         Reverted changeset:
194
195         "SDK_VARIANT build destinations should be separate from non-
196         SDK_VARIANT builds"
197         https://bugs.webkit.org/show_bug.cgi?id=189553
198         https://trac.webkit.org/changeset/240124
199
200 2019-01-17  Jer Noble  <jer.noble@apple.com>
201
202         SDK_VARIANT build destinations should be separate from non-SDK_VARIANT builds
203         https://bugs.webkit.org/show_bug.cgi?id=189553
204
205         Reviewed by Tim Horton.
206
207         * MediaTime/Configurations/Base.xcconfig:
208         * MediaTime/Configurations/SDKVariant.xcconfig: Added.
209
210 2018-12-20  Caio Lima  <ticaiolima@gmail.com>
211
212         [BigInt] We should enable CSE into arithmetic operations that speculate BigIntUse
213         https://bugs.webkit.org/show_bug.cgi?id=192723
214
215         Reviewed by Yusuke Suzuki.
216
217         * BigIntBench/big-int-cse.js: Added.
218         * BigIntBench/big-int-global-cse.js: Added.
219         * BigIntBench/big-int-licm.js: Added.
220
221 2018-12-19  Commit Queue  <commit-queue@webkit.org>
222
223         Unreviewed, rolling out r239377.
224         https://bugs.webkit.org/show_bug.cgi?id=192921
225
226         broke 32-bit JSC tests (Requested by keith_miller on #webkit).
227
228         Reverted changeset:
229
230         "[BigInt] We should enable CSE into arithmetic operations that
231         speculate BigIntUse"
232         https://bugs.webkit.org/show_bug.cgi?id=192723
233         https://trac.webkit.org/changeset/239377
234
235 2018-12-19  Caio Lima  <ticaiolima@gmail.com>
236
237         [BigInt] We should enable CSE into arithmetic operations that speculate BigIntUse
238         https://bugs.webkit.org/show_bug.cgi?id=192723
239
240         Reviewed by Saam Barati.
241
242         * BigIntBench/big-int-cse.js: Added.
243         * BigIntBench/big-int-global-cse.js: Added.
244         * BigIntBench/big-int-licm.js: Added.
245
246 2018-12-17  Suresh Koppisetty  <skoppisetty@apple.com>
247
248         Add "-o/--output" option to startup.py and new_tab.py benchmark scripts to save the results in json format.
249         https://bugs.webkit.org/show_bug.cgi?id=192385
250
251         Reviewed by Ryosuke Niwa.
252
253         Sample json output for new tab benchmark script after running for 2 iterations and 2 groups. Values are in milliseconds.
254         {
255                 "NewTabBenchmark": {
256                         "metrics": {
257                                 "Time": {
258                                         "current": [
259                                                 [
260                                                         410.2939453125,
261                                                         307.81494140625
262                                                 ],
263                                                 [
264                                                         340.616943359375,
265                                                         265.94384765625
266                                                 ]
267                                         ]
268                                 }
269                         }
270                 }
271         }
272
273         Sample json output for startup time benchmark script after running for 2 iterations. Values are in milliseconds.
274         {
275                 "StartupBenchmark": {
276                         "metrics": {
277                                 "Time": {
278                                         "current": [
279                                                 [
280                                                         1415.2099609375,
281                                                         1439.552978515625
282                                                 ]
283                                         ]
284                                 }
285                         }
286                 }
287         }
288
289         * LaunchTime/launch_time.py:
290         * LaunchTime/new_tab.py:
291         (NewTabBenchmark.get_test_name):
292         * LaunchTime/startup.py:
293         (StartupBenchmark.get_test_name):
294
295 2018-12-17  Suresh Koppisetty  <skoppisetty@apple.com>
296
297         Import FeedbackServer only if "-f/--feedback-in-browser" option is enabled.
298         https://bugs.webkit.org/show_bug.cgi?id=192378
299
300         Reviewed by Ryosuke Niwa.
301
302         FeedbackServer currently depends on Tornado-5.1, which further adds
303         dependency of "singledispatch", "backports-abc" and "futures" python libraries.
304         Importing FeedbackServer only if "-f/--feedback-in-browser" option is enabled
305         will let us run the benchmark scripts without installing any new python libraries.
306
307         * LaunchTime/launch_time.py:
308         * LaunchTime/new_tab.py:
309
310 2018-12-13  Caio Lima  <ticaiolima@gmail.com>
311
312         [BigInt] Add ValueDiv into DFG
313         https://bugs.webkit.org/show_bug.cgi?id=186178
314
315         Reviewed by Yusuke Suzuki.
316
317         * BigIntBench/big-int-simple-div.js: Added.
318         * BigIntBench/value-div-type-propagation.js: Added.
319
320 2018-12-10  Caio Lima  <ticaiolima@gmail.com>
321
322         [BigInt] Add ValueMul into DFG
323         https://bugs.webkit.org/show_bug.cgi?id=186175
324
325         Reviewed by Yusuke Suzuki.
326
327         * BigIntBench/big-int-simple-mul.js: Added.
328         * BigIntBench/value-mul-type-propagation.js: Added.
329
330 2018-11-07  Caio Lima  <ticaiolima@gmail.com>
331
332         [BigInt] Add support to BigInt into ValueAdd
333         https://bugs.webkit.org/show_bug.cgi?id=186177
334
335         Reviewed by Keith Miller.
336
337         The idea of BigIntBench is to provide a set of microbenchmarks and
338         benchmarks to evaluate how fast BigInt computations are happening on
339         JSC implementation.
340
341         Now, we are adding microbenchmarks in this set,
342         but the plan is to move these tests to "JSTest/microbenchmarks" when
343         BigInt is enabled by default. After that, the focus of Bigint bench is
344         to provide a set of tests that represents real use cases of BigInt in
345         JS programs.
346
347         * BigIntBench/big-int-add-prediction-propagation.js: Added.
348         * BigIntBench/big-int-simple-add.js: Added.
349         * BigIntBench/big-int-simple-sub.js: Added.
350
351 2018-11-07  Tadeu Zagallo  <tzagallo@apple.com>
352
353         REGRESSION(r237547): Test failures on 32-bit JSC since the JIT was disabled
354         https://bugs.webkit.org/show_bug.cgi?id=191184
355
356         Reviewed by Saam Barati.
357
358         Skip test when the JIT is disabled, it takes too long to run on CLoop.
359
360         * JetStream/cdjs/main.js:
361
362 2018-11-05  Myles C. Maxfield  <mmaxfield@apple.com>
363
364         Cache glyph paths and share underline skipping code between all the ports
365         https://bugs.webkit.org/show_bug.cgi?id=191239
366
367         Reviewed by Alex Christensen.
368
369         Measures the performance of drawing a whole lot of underlines
370
371         * Layout/underline.html: Added.
372
373 2018-10-25  Saam Barati  <sbarati@apple.com>
374
375         Check in corresponding C code in JetStream 2
376         https://bugs.webkit.org/show_bug.cgi?id=190733
377
378         Rubber-stamped by Filip Pizlo.
379
380         * JetStream2/simple/float-mm.c: Added.
381         * JetStream2/wasm/HashSet.cpp: Added.
382         * JetStream2/wasm/gcc-loops.cpp: Added.
383         * JetStream2/wasm/quicksort.c: Added.
384         * JetStream2/wasm/TSF: Added.
385         * JetStream2/wasm/TSF/build.sh: Added.
386         * JetStream2/wasm/TSF/config.h: Added.
387         * JetStream2/wasm/TSF/gpc.h: Added.
388         * JetStream2/wasm/TSF/gpc_code_gen_util.c: Added.
389         * JetStream2/wasm/TSF/gpc_instruction.c: Added.
390         * JetStream2/wasm/TSF/gpc_instruction_dispatch.gen: Added.
391         * JetStream2/wasm/TSF/gpc_instruction_size.gen: Added.
392         * JetStream2/wasm/TSF/gpc_instruction_stack_effects.gen: Added.
393         * JetStream2/wasm/TSF/gpc_instruction_static_size.gen: Added.
394         * JetStream2/wasm/TSF/gpc_instruction_to_string.gen: Added.
395         * JetStream2/wasm/TSF/gpc_int_common.h: Added.
396         * JetStream2/wasm/TSF/gpc_intable.c: Added.
397         * JetStream2/wasm/TSF/gpc_internal.h: Added.
398         * JetStream2/wasm/TSF/gpc_interpreter.gen: Added.
399         * JetStream2/wasm/TSF/gpc_program.c: Added.
400         * JetStream2/wasm/TSF/gpc_proto.c: Added.
401         * JetStream2/wasm/TSF/gpc_stack_height.c: Added.
402         * JetStream2/wasm/TSF/gpc_threaded.c: Added.
403         * JetStream2/wasm/TSF/gpc_worklist.h: Added.
404         * JetStream2/wasm/TSF/tsf.h: Added.
405         * JetStream2/wasm/TSF/tsf_adaptive_reader.c: Added.
406         * JetStream2/wasm/TSF/tsf_asprintf.c: Added.
407         * JetStream2/wasm/TSF/tsf_atomics.h: Added.
408         * JetStream2/wasm/TSF/tsf_buf_reader.c: Added.
409         * JetStream2/wasm/TSF/tsf_buf_writer.c: Added.
410         * JetStream2/wasm/TSF/tsf_buffer.c: Added.
411         * JetStream2/wasm/TSF/tsf_build_defines.h: Added.
412         * JetStream2/wasm/TSF/tsf_config.h: Added.
413         * JetStream2/wasm/TSF/tsf_config_stub.h: Added.
414         * JetStream2/wasm/TSF/tsf_copier.c: Added.
415         * JetStream2/wasm/TSF/tsf_define_helpers.c: Added.
416         * JetStream2/wasm/TSF/tsf_define_helpers.h: Added.
417         * JetStream2/wasm/TSF/tsf_destructor.c: Added.
418         * JetStream2/wasm/TSF/tsf_error.c: Added.
419         * JetStream2/wasm/TSF/tsf_format.h: Added.
420         * JetStream2/wasm/TSF/tsf_fsdb.c: Added.
421         * JetStream2/wasm/TSF/tsf_fsdb_protocol.c: Added.
422         * JetStream2/wasm/TSF/tsf_fsdb_protocol.h: Added.
423         * JetStream2/wasm/TSF/tsf_generator.c: Added.
424         * JetStream2/wasm/TSF/tsf_gpc_code_gen.c: Added.
425         * JetStream2/wasm/TSF/tsf_indent.h: Added.
426         * JetStream2/wasm/TSF/tsf_internal.h: Added.
427         * JetStream2/wasm/TSF/tsf_internal_config.h: Added.
428         * JetStream2/wasm/TSF/tsf_internal_config_stub.h: Added.
429         * JetStream2/wasm/TSF/tsf_inttypes.h: Added.
430         * JetStream2/wasm/TSF/tsf_io.c: Added.
431         * JetStream2/wasm/TSF/tsf_io_utils.c: Added.
432         * JetStream2/wasm/TSF/tsf_ir.c: Added.
433         * JetStream2/wasm/TSF/tsf_ir.h: Added.
434         * JetStream2/wasm/TSF/tsf_ir_different.c: Added.
435         * JetStream2/wasm/TSF/tsf_ir_different.h: Added.
436         * JetStream2/wasm/TSF/tsf_ir_speed.c: Added.
437         * JetStream2/wasm/TSF/tsf_limits.c: Added.
438         * JetStream2/wasm/TSF/tsf_named_type.c: Added.
439         * JetStream2/wasm/TSF/tsf_native.c: Added.
440         * JetStream2/wasm/TSF/tsf_parser.c: Added.
441         * JetStream2/wasm/TSF/tsf_primitive.c: Added.
442         * JetStream2/wasm/TSF/tsf_ra_type_man.c: Added.
443         * JetStream2/wasm/TSF/tsf_reflect.c: Added.
444         * JetStream2/wasm/TSF/tsf_region.h: Added.
445         * JetStream2/wasm/TSF/tsf_serial_in_man.c: Added.
446         * JetStream2/wasm/TSF/tsf_serial_out_man.c: Added.
447         * JetStream2/wasm/TSF/tsf_serial_protocol.h: Added.
448         * JetStream2/wasm/TSF/tsf_sha1.c: Added.
449         * JetStream2/wasm/TSF/tsf_sha1.h: Added.
450         * JetStream2/wasm/TSF/tsf_sha1_writer.c: Added.
451         * JetStream2/wasm/TSF/tsf_sort.c: Added.
452         * JetStream2/wasm/TSF/tsf_st.c: Added.
453         * JetStream2/wasm/TSF/tsf_st.h: Added.
454         * JetStream2/wasm/TSF/tsf_st_typetable.c: Added.
455         * JetStream2/wasm/TSF/tsf_stream_file_input.c: Added.
456         * JetStream2/wasm/TSF/tsf_stream_file_output.c: Added.
457         * JetStream2/wasm/TSF/tsf_type.c: Added.
458         * JetStream2/wasm/TSF/tsf_type_in_map.c: Added.
459         * JetStream2/wasm/TSF/tsf_type_out_map.c: Added.
460         * JetStream2/wasm/TSF/tsf_type_table.c: Added.
461         * JetStream2/wasm/TSF/tsf_types.h: Added.
462         * JetStream2/wasm/TSF/tsf_util.h: Added.
463         * JetStream2/wasm/TSF/tsf_version.c: Added.
464         * JetStream2/wasm/TSF/tsf_zip_abstract.c: Added.
465         * JetStream2/wasm/TSF/tsf_zip_abstract.h: Added.
466         * JetStream2/wasm/TSF/tsf_zip_attr.c: Added.
467         * JetStream2/wasm/TSF/tsf_zip_reader.c: Added.
468         * JetStream2/wasm/TSF/tsf_zip_writer.c: Added.
469
470 2018-10-18  Saam Barati  <sbarati@apple.com>
471
472         Make JetStream 2
473         https://bugs.webkit.org/show_bug.cgi?id=187829
474
475         Rubber-stamped by Mark Lam.
476
477         This patch checks in the new JetStream 2 benchmark. JetStream 2 is
478         a new JavaScript and Web Assembly benchmark. JetStream 2's goal
479         is to measure the startup, worst case, and peak throughput performance
480         of the JavaScript engine. JetStream 2 incorporates these previous
481         benchmarks:
482         - JetStream
483         - ARES-6
484         - Kraken
485         - Web Tooling Benchmark
486         - WasmBench
487         - RexBench
488         
489         JetStream 2 also adds some new benchmarks:
490         - Two tests emphasizing web worker performance.
491         - One test emphasizing Promise, async iteration, and DataView performance.
492         - Two new code load tests.
493         - WSL: a test measuring all kinds of things, especially emphasizing exception performance.
494
495         * JetStream2: Added.
496
497 2018-10-02  Chris Dumez  <cdumez@apple.com>
498
499         Regression(r236613): Parser/html-parser.html performance test is failing
500         https://bugs.webkit.org/show_bug.cgi?id=190201
501
502         Unreviewed, apply the same fix as in r236699 to make sure the iframe is treated as
503         same origin, so that calls to document.open() / document.write() succeed.
504
505         * Parser/html-parser.html:
506
507 2018-10-01  Chris Dumez  <cdumez@apple.com>
508
509         Regression(r236613): Parser/HTML5-8266-ParseOnly.html performance tests no longer runs
510         https://bugs.webkit.org/show_bug.cgi?id=190174
511
512         Reviewed by Ryosuke Niwa.
513
514         Update iframe's sandbox to use 'allow-same-origin' so that the iframe is treated as same-origin and so that
515         the top frame can call document.open() / document.write() on the subframe. This test was also failing in
516         Firefox without this change.
517
518         * Parser/HTML5-8266-ParseOnly.html:
519
520 2018-08-27  Aditya Keerthi  <akeerthi@apple.com>
521
522         Consolidate ENABLE_INPUT_TYPE_COLOR and ENABLE_INPUT_TYPE_COLOR_POPOVER
523         https://bugs.webkit.org/show_bug.cgi?id=188931
524
525         Reviewed by Wenson Hsieh.
526
527         * StitchMarker/wtf/FeatureDefines.h: Removed ENABLE_INPUT_TYPE_COLOR_POPOVER.
528
529 2018-08-23  Don Olmstead  <don.olmstead@sony.com>
530
531         [CMake] Have checks are not getting set inside CMake properly
532         https://bugs.webkit.org/show_bug.cgi?id=188901
533
534         Reviewed by Michael Catanzaro.
535
536         Add notification that MallocBench is disabled.
537
538         * CMakeLists.txt:
539
540 2018-08-23  Don Olmstead  <don.olmstead@sony.com>
541
542         [CMake] Add HAVE_MALLOC_TRIM definition
543         https://bugs.webkit.org/show_bug.cgi?id=188897
544
545         Reviewed by Konstantin Tokarev.
546
547         MallocBench should only be built on Apple platforms and platforms that
548         have malloc_trim.
549
550         * CMakeLists.txt:
551
552 2018-08-13  Jon Lee  <jonlee@apple.com>
553
554         Update MotionMark version number
555         https://bugs.webkit.org/show_bug.cgi?id=188535
556         <rdar://problem/43254078>
557
558         Reviewed by Said Abou-Hallawa.
559
560         * MotionMark/resources/strings.js: To 1.1.
561
562 2018-08-13  Jon Lee  <jonlee@apple.com>
563
564         [MotionMark] Update Multiply test
565         https://bugs.webkit.org/show_bug.cgi?id=188532
566         <rdar://problem/43252151>
567
568         Reviewed by Said Abou-Hallawa.
569
570         Update Multiply test to have a larger upper limit of number of particles. Cycle through three
571         different ways of hiding an element. Add new Multiple suite that isolates those components for
572         debugging purposes.
573
574         * MotionMark/resources/debug-runner/tests.js:
575         * MotionMark/tests/dom/multiply.html: Added.
576         * MotionMark/tests/dom/resources/multiply.js: Added.
577         * MotionMark/tests/master/resources/multiply.js:
578
579 2018-08-13  Jon Lee  <jonlee@apple.com>
580
581         [MotionMark] Update Leaves test
582         https://bugs.webkit.org/show_bug.cgi?id=188530
583         <rdar://problem/43251862>
584
585         Reviewed by Said Abou-Hallawa.
586
587         Update Leaves test to include opacity and scale. Add new Leaves suite that isolate those components
588         for debugging purposes.
589
590         * MotionMark/resources/debug-runner/tests.js:
591         * MotionMark/tests/dom/leaves.html:
592         * MotionMark/tests/dom/resources/leaves.js:
593         * MotionMark/tests/master/resources/leaves.js:
594
595 2018-08-10  Ben Richards  <benton_richards@apple.com>
596
597         Add ability to ignore process prewarming for launch time benchmark
598         https://bugs.webkit.org/show_bug.cgi?id=188462
599
600         Reviewed by Ryosuke Niwa.
601
602         Added a flag to the new tab benchmark that will open a blank tab before the tab to be measured in order to ignore process prewarming.
603
604         * LaunchTime/launch_time.py:
605         (DefaultLaunchTimeHandler):
606         (DefaultLaunchTimeHandler.on_receive_stop_time): Deleted.
607         (DefaultLaunchTimeHandler.on_receive_stop_signal):
608         (DefaultLaunchTimeHandler.do_HEAD):
609         (DefaultLaunchTimeHandler.do_GET):
610         (DefaultLaunchTimeHandler.do_POST):
611         (LaunchTimeBenchmark):
612         (LaunchTimeBenchmark._standard_deviation): Fixed divide by zero bug when '-n' is set to 1
613         (LaunchTimeBenchmark.open_tab): Added option to open a blank tab
614         (LaunchTimeBenchmark.run):
615         * LaunchTime/new_tab.py:
616         (NewTabBenchmark.initialize):
617         (NewTabBenchmark.run_iteration):
618         (NewTabBenchmark.will_parse_arguments):
619         (NewTabBenchmark.did_parse_arguments):
620         (NewTabBenchmark.ResponseHandler.Handler.get_test_page):
621         (NewTabBenchmark.ResponseHandler.Handler.on_receive_stop_time): Deleted.
622         (NewTabBenchmark.ResponseHandler.Handler.on_receive_stop_signal):
623         (NewTabBenchmark):
624         * LaunchTime/startup.py:
625         (StartupBenchmark.ResponseHandler.Handler.get_test_page):
626         (StartupBenchmark.ResponseHandler.Handler.on_receive_stop_time): Deleted.
627         (StartupBenchmark.ResponseHandler.Handler.on_receive_stop_signal):
628         (StartupBenchmark):
629
630 2018-08-10  Truitt Savell  <tsavell@apple.com>
631
632         Unreviewed, rolling out r234750.
633
634         Caused 185 perf test failures.
635
636         Reverted changeset:
637
638         "Add ability to ignore process prewarming for launch time
639         benchmark"
640         https://bugs.webkit.org/show_bug.cgi?id=188462
641         https://trac.webkit.org/changeset/234750
642
643 2018-08-09  Ben Richards  <benton_richards@apple.com>
644
645         Add ability to ignore process prewarming for launch time benchmark
646         https://bugs.webkit.org/show_bug.cgi?id=188462
647
648         Reviewed by Ryosuke Niwa.
649
650         Added a flag to the new tab benchmark that will open a blank tab before the tab to be measured in order to ignore process prewarming.
651
652         * LaunchTime/launch_time.py:
653         (DefaultLaunchTimeHandler):
654         (DefaultLaunchTimeHandler.on_receive_stop_time): Deleted.
655         (DefaultLaunchTimeHandler.on_receive_stop_signal):
656         (DefaultLaunchTimeHandler.do_HEAD):
657         (DefaultLaunchTimeHandler.do_GET):
658         (DefaultLaunchTimeHandler.do_POST):
659         (LaunchTimeBenchmark):
660         (LaunchTimeBenchmark._standard_deviation): Fixed divide by zero bug when '-n' is set to 1
661         (LaunchTimeBenchmark.open_tab): Added option to open a blank tab
662         (LaunchTimeBenchmark.run):
663         * LaunchTime/new_tab.py:
664         (NewTabBenchmark.initialize):
665         (NewTabBenchmark.run_iteration):
666         (NewTabBenchmark.will_parse_arguments):
667         (NewTabBenchmark.did_parse_arguments):
668         (NewTabBenchmark.ResponseHandler.Handler.get_test_page):
669         (NewTabBenchmark.ResponseHandler.Handler.on_receive_stop_time): Deleted.
670         (NewTabBenchmark.ResponseHandler.Handler.on_receive_stop_signal):
671         (NewTabBenchmark):
672         * LaunchTime/startup.py:
673         (StartupBenchmark.ResponseHandler.Handler.get_test_page):
674         (StartupBenchmark.ResponseHandler.Handler.on_receive_stop_time): Deleted.
675         (StartupBenchmark.ResponseHandler.Handler.on_receive_stop_signal):
676         (StartupBenchmark):
677
678 2018-07-26  Andy VanWagoner  <andy@vanwagoner.family>
679
680         [INTL] Remove INTL sub-feature compile flags
681         https://bugs.webkit.org/show_bug.cgi?id=188081
682
683         Reviewed by Michael Catanzaro.
684
685         Removed old and unused i18n flag.
686
687         * StitchMarker/wtf/FeatureDefines.h:
688
689 2018-07-20  David Fenton  <david_fenton@apple.com>
690
691         REGRESSION (234006) ERROR: Blocked access to external URL http://code.jquery.com/jquery-1.9.1.min.js
692         https://bugs.webkit.org/show_bug.cgi?id=187858
693
694         Unreviewed test gardening, skipped test.
695
696         * Skipped: LaunchTime
697
698 2018-07-19  Ben Richards  <benton_richards@apple.com>
699
700         Add benchmark for WebKit process launch times
701         https://bugs.webkit.org/show_bug.cgi?id=186414
702
703         Reviewed by Ryosuke Niwa.
704
705         Added two benchmarks, one for measuring browser new tab launch time and one for browser startup time.
706
707         * LaunchTime/.gitignore: Added.
708         * LaunchTime/feedback_client.html: Added.
709         Displays benchmark progress in browser
710         * LaunchTime/feedback_server.py: Added.
711         (FeedbackServer): Sends data to feedback_client via websocket
712         (FeedbackServer.__init__):
713         (FeedbackServer._create_app):
714         (FeedbackServer._start_server):
715         (FeedbackServer._send_all_messages):
716         (FeedbackServer.start):
717         (FeedbackServer.stop):
718         (FeedbackServer.send_message): Send a message to the feedback_client
719         (FeedbackServer.wait_until_client_has_loaded): Wait until the feedback_client has opened a websocket connection to the feedback_server
720         (FeedbackServer.MainHandler): Handler factory to create handler that serves feedback_client.html
721         (FeedbackServer.MainHandler.Handler):
722         (FeedbackServer.MainHandler.Handler.get):
723         (FeedbackServer.WSHandler): Handler factory to create handler that sends data to feedback client
724         (FeedbackServer.WSHandler.Handler):
725         (FeedbackServer.WSHandler.Handler.open): On websocket connection opened
726         (FeedbackServer.WSHandler.Handler.on_close): On websocket connection closed
727         * LaunchTime/launch_time.py: Added.
728         (DefaultLaunchTimeHandler): Abstract HTTP request handler for launch time benchmarks
729         (DefaultLaunchTimeHandler.get_test_page): Default test page to be overridden by benchmarks
730         (DefaultLaunchTimeHandler.get_blank_page):
731         (DefaultLaunchTimeHandler.on_receive_stop_time):
732         (DefaultLaunchTimeHandler.do_HEAD):
733         (DefaultLaunchTimeHandler.do_GET):
734         (DefaultLaunchTimeHandler.do_POST):
735         (DefaultLaunchTimeHandler.log_message): Suppresses HTTP logs from SimpleHTTPRequestHandler
736         (LaunchTimeBenchmark): Abstract class which launch time benchmarks inherit from and override methods desired to customize
737         (LaunchTimeBenchmark.__init__):
738         (LaunchTimeBenchmark._parse_browser_bundle_path): Parser for bundle path option
739         (LaunchTimeBenchmark._parse_args):
740         (LaunchTimeBenchmark._run_server): Target function for main server thread
741         (LaunchTimeBenchmark._setup_servers):
742         (LaunchTimeBenchmark._clean_up):
743         (LaunchTimeBenchmark._exit_due_to_exception):
744         (LaunchTimeBenchmark._geometric_mean):
745         (LaunchTimeBenchmark._standard_deviation):
746         (LaunchTimeBenchmark._compute_results): Returns mean and std dev of list of results and pretty prints if should_print=True is specified
747         (LaunchTimeBenchmark._wait_times): Mimic numpy.linspace
748         (LaunchTimeBenchmark.open_tab): Open a browser tab with the html given by self.response_handler.get_test_page
749         (LaunchTimeBenchmark.launch_browser): Open a broser to either the feedback client (if option is set) or a blank page
750         (LaunchTimeBenchmark.quit_browser):
751         (LaunchTimeBenchmark.quit_browser.quit_app):
752         (LaunchTimeBenchmark.quit_browser.is_app_closed):
753         (LaunchTimeBenchmark.close_tab):
754         (LaunchTimeBenchmark.wait):
755         (LaunchTimeBenchmark.log): Print to console and send to feedback client if --feedback-in-browser flag is used
756         (LaunchTimeBenchmark.log_verbose): Only logs if --verbose flag is used
757         (LaunchTimeBenchmark.run):
758         (LaunchTimeBenchmark.group_init): Initialization done before each round of iterations
759         (LaunchTimeBenchmark.run_iteration):
760         (LaunchTimeBenchmark.initialize): Convenience method to be overriden by subclasses which is called at the end of __init__
761         (LaunchTimeBenchmark.will_parse_arguments): Called before argparse.parse_args to let subclasses add new command line arguments
762         (LaunchTimeBenchmark.did_parse_arguments): Called after argparse.parse_args to let subclass initialize based on command line arguments
763         * LaunchTime/new_tab.py: Added
764         (NewTabBenchmark):
765         (NewTabBenchmark._parse_wait_time): Parser for wait time option
766         (NewTabBenchmark.initialize):
767         (NewTabBenchmark.run_iteration):
768         (NewTabBenchmark.group_init):
769         (NewTabBenchmark.will_parse_arguments):
770         (NewTabBenchmark.did_parse_arguments):
771         (NewTabBenchmark.ResponseHandler):
772         (NewTabBenchmark.ResponseHandler.Handler):
773         (NewTabBenchmark.ResponseHandler.Handler.get_test_page):
774         * LaunchTime/startup.py: Added
775         (StartupBenchmark): This benchmark measures browser startup time and initial page load time
776         (StartupBenchmark.initialize):
777         (StartupBenchmark.run_iteration):
778         (StartupBenchmark.ResponseHandler):
779         (StartupBenchmark.ResponseHandler.Handler):
780         (StartupBenchmark.ResponseHandler.Handler.get_test_page):
781         * LaunchTime/thirdparty/__init__.py: Added.
782         (AutoinstallImportHook): Auto installs tornado package for feedback server
783         (AutoinstallImportHook.__init__):
784         (AutoinstallImportHook._ensure_autoinstalled_dir_is_in_sys_path):
785         (AutoinstallImportHook.find_module):
786         (AutoinstallImportHook._install_tornado):
787         (AutoinstallImportHook.greater_than_equal_to_version):
788         (AutoinstallImportHook._install):
789         (AutoinstallImportHook.get_latest_pypi_url):
790         (AutoinstallImportHook.install_binary):
791         (autoinstall_everything):
792         (get_os_info):
793
794 2018-06-25  Jon Lee  <jonlee@apple.com>
795
796         [MotionMark] Add support for version numbers
797         https://bugs.webkit.org/show_bug.cgi?id=186479
798
799         Reviewed by Said Abou-Hallawa.
800
801         Add support for displaying the version number as well as including it in the JSON results.
802
803         When loading the front page, script replaces any element with classname version with the
804         version number of the benchmark, which is stored in Strings.version.
805
806         The JSON structure for the results includes a new version property:
807             {
808               "version": "1.0",
809               "options": { ... },
810               "data": [ ... ]
811             }
812
813         When dragging a results file, the version listed will come from the JSON file. Older
814         results will not have had the version property, in which case it will default to "1.0".
815
816         * MotionMark/index.html: Update title to some other default. Script will update it.
817         Include the version number in the logo title.
818         * MotionMark/developer.html: Ditto.
819         * MotionMark/about.html: Ditto.
820
821         * MotionMark/resources/runner/motionmark.js:
822         (ResultsDashboard): Update constructor to include version. This is used when serializing
823         results out to JSON, and displaying the results panel in developer mode.
824         (ResultsDashboard._processData): When running the benchmark, include benchmark version string
825         in the results object.
826         (ResultsDashboard.version):
827         (window.benchmarkRunnerClient.willStartFirstIteration): When running the benchmark, pass the
828         benchmark version string to the dashboard, which holds the results.
829         (window.sectionsManager.setSectionVersion): Helper function to update the element in the
830         section with the class name version.
831         (window.benchmarkController.initialize): Populate all DOM elements with class name "version"
832         with the version string. Update the page title.
833         (window.benchmarkController.showResults): When showing results, update the version string
834         based on what is included in the JSON results, which would be the same as the benchmark version.
835         * MotionMark/resources/runner/motionmark.css: Include missing copyright. Wrap the SVG logo
836         in a div and include the version string.
837         * MotionMark/resources/strings.js: Add strings for the page title template, and the version.
838
839         * MotionMark/resources/debug-runner/motionmark.css:
840         * MotionMark/resources/debug-runner/motionmark.js:
841         (window.benchmarkRunnerClient.willStartFirstIteration): When running the benchmark, pass the
842         benchmark version string to the dashboard, which holds the results.
843         (window.benchmarkController.initialize): Populate all DOM elements with class name "version"
844         with the version string. Update the page title. When dragging in JSON results, look for
845         version to pass to the dashboard. If it doesn't exist, default to "1.0".
846         (window.benchmarkController.showResults): When showing results, update the version string
847         based on what is included in the JSON results, instead of the current benchmark version.
848         * MotionMark/resources/debug-runner/tests.js: Update page title template.
849
850 2018-06-08  Jon Lee  <jonlee@apple.com>
851
852         [MotionMark] Rename Suits test files
853         https://bugs.webkit.org/show_bug.cgi?id=186447
854
855         Reviewed by Said Abou-Hallawa.
856
857         * MotionMark/resources/runner/tests.js:
858         * MotionMark/tests/master/resources/suits.js: Renamed from PerformanceTests/MotionMark/tests/master/resources/svg-particles.js.
859         * MotionMark/tests/master/suits.html: Renamed from PerformanceTests/MotionMark/tests/master/svg-particles.html.
860         * MotionMark/tests/svg/suits.html:
861
862 2018-06-08  Jon Lee  <jonlee@apple.com>
863
864         Add sub-tests based on Suits
865         https://bugs.webkit.org/show_bug.cgi?id=186260
866
867         Reviewed by Said Abou-Hallawa.
868
869         Add a new developer Suits suite with sub-tests that isolate parts of each particle.
870         The sub-tests are:
871             - Particles using only clip paths
872             - Particles using only shapes
873             - Particles that have no gradients
874             - Particles that have no rotation
875             - Particles that do not move around at all (but all of the physics calculations are
876             still performed)
877
878         * MotionMark/resources/debug-runner/tests.js:
879         * MotionMark/tests/master/resources/svg-particles.js: Rename the stage, particle, and
880         benchmark to "Suits" from "SVG". Change SuitsParticle so that we guarantee 50% clip and
881         shape paths rather than relying on random chance. Wrap a check around creation of the
882         gradient element, and use a simple fill color when we aren't using a gradient.
883         * MotionMark/tests/svg/suits.html: Added.
884         * MotionMark/tests/svg/suits.js: Added.
885         Look for the query string and set the particle based on what is selected.
886
887 2018-06-06  Jon Lee  <jonlee@apple.com>
888
889         Allow the ramp controller to run tests that take less time than the initial ramp-up phase
890         https://bugs.webkit.org/show_bug.cgi?id=186257
891
892         Reviewed by Said Abou-Hallawa.
893
894         * MotionMark/tests/resources/main.js: Extend the desired end timestamp when ramp-up occurs.
895         Previously the controller assumed that the duration of the test was always longer than the
896         time it took to figure out the order of magnitude of particles to render. When that range
897         is determined, the end timestamp is then extended. If the duration is too short, the controller
898         would throw an exception. The fix is to continue extending the timestamp every time the order of
899         magnitude tiers up.
900
901         In general testing with really short durations isn't practical, but sometimes it is
902         desired for debugging.
903
904         To avoid confusion of the private variables, I renamed Benchmark._startTimestamp to
905         Benchmark._benchmarkStartTimestamp, to disambiguate from Controller._startTimestamp.
906         Benchmark._startTimestamp is set once and never changed, after the initial 100ms warm-up.
907         Controller._startTimestamp is initialized to 0 (which means "not initialized"), and then after
908         the warm up is complete, set in Controller.start() to the same wall clock timestamp, and never
909         changed afterwards.
910
911 2018-06-06  Jon Lee  <jonlee@apple.com>
912
913         Remove unneeded data processing in MotionMark
914         https://bugs.webkit.org/show_bug.cgi?id=186256
915
916         Reviewed by Said Abou-Hallawa.
917
918         Remove calculation of average frame rate based on multiple samples at a given complexity.
919         It is not used in the calculation of the score, and is just extra work to do at the end
920         of a test.
921
922         * MotionMark/developer.html: Remove options to show average data and regression based on
923         that data.
924         * MotionMark/resources/debug-runner/graph.js: Remove data. Update the time graph that
925         shows the relationship between the break point in the regression against the complexity
926         graph.
927         * MotionMark/resources/debug-runner/motionmark.css: Make the confidence intervals easier
928         to see.
929         * MotionMark/resources/runner/motionmark.js: Simplify score calculation now that we are
930         only calculating regressions on the raw data. We were calculating it based on the averages,
931         but that was just for analysis, and not used in the actual score. Get rid of the
932         |complexitySamples| local variable.
933         * MotionMark/resources/strings.js: Remove unneeded string constant.
934         * MotionMark/tests/resources/main.js:
935         (processSamples): Refactor so that more of it can be shared between Controller and
936         RampController. It also avoids processing the raw samples (controllerSamples) twice for
937         the ramp controller.
938         (_processComplexitySamples): Remove logic to calculate averages based on complexity.
939         (_processMarks): Split this out from the old processSamples.
940         (_processControllerSamples): Split this out from the old processSamples.
941
942 2018-06-06  Jon Lee  <jonlee@apple.com>
943
944         Strip out more characters when creating permalinks
945         https://bugs.webkit.org/show_bug.cgi?id=186259
946
947         Reviewed by Said Abou-Hallawa.
948
949         Tests and suites may have names that make permalinks to the tests less readable when
950         shared. Expand the set of characters that are stripped out of the names.
951
952         * MotionMark/resources/debug-runner/motionmark.js: Refactor to call
953         stripUnwantedCharactersForURL. For existing links, decode the suite and test names.
954         * MotionMark/resources/extensions.js:
955         (Utilities.stripUnwantedCharactersForURL): Rename from stripNonASCIICharacters.
956         Remove any non-alphanumeric character.
957
958 2018-06-04  Jon Lee  <jonlee@apple.com>
959
960         Remove unnecessary MotionMark controllers
961         https://bugs.webkit.org/show_bug.cgi?id=186255
962
963         Reviewed by Said Abou-Hallawa.
964
965         Get rid of the ramp30 and the fixed-with-a-step controllers, which aren't used for testing
966         or debugging.
967
968         * MotionMark/developer.html: Move the "ramp" option as first, since that is the default
969         controller for the benchmark.
970         * MotionMark/resources/debug-runner/motionmark.js:
971         * MotionMark/resources/runner/motionmark.js: Added missing copyright notice.
972         * MotionMark/tests/resources/main.js:
973
974 2018-05-25  Myles C. Maxfield  <mmaxfield@apple.com>
975
976         Improve the performance of Font::canRenderCombiningCharacterSequence()
977         https://bugs.webkit.org/show_bug.cgi?id=185933
978
979         Reviewed by Ryosuke Niwa.
980
981         * Layout/ComplexLongUnique.html: Added.
982
983 2018-05-25  Saam Barati  <sbarati@apple.com>
984
985         Have a memory test where we can validate JSCs mini memory mode
986         https://bugs.webkit.org/show_bug.cgi?id=185932
987
988         Reviewed by Mark Lam.
989
990         We add a directory here with the contents of the testmem benchmark.
991         To run it, use `Tools/Scripts/run-testmem`. To add new tests in the future,
992         you just need to add JS files to this directory.
993
994         * testmem: Added.
995         * testmem/air.js: Added.
996         * testmem/base64.js: Added.
997         * testmem/basic.js: Added.
998         * testmem/box2d.js: Added.
999         * testmem/crypto-md5.js: Added.
1000         * testmem/date-format-tofte.js: Added.
1001         * testmem/earley-boyer.js: Added.
1002         * testmem/hash-map.js: Added.
1003         * testmem/regex-dna.js: Added.
1004         * testmem/splay.js: Added.
1005         * testmem/tagcloud.js: Added.
1006
1007 2018-05-22  Ryan Haddad  <ryanhaddad@apple.com>
1008
1009         Unreviewed, rolling out r232052.
1010
1011         Breaks internal builds.
1012
1013         Reverted changeset:
1014
1015         "Use more C++17"
1016         https://bugs.webkit.org/show_bug.cgi?id=185176
1017         https://trac.webkit.org/changeset/232052
1018
1019 2018-05-21  Yusuke Suzuki  <utatane.tea@gmail.com>
1020
1021         Use more C++17
1022         https://bugs.webkit.org/show_bug.cgi?id=185176
1023
1024         Reviewed by JF Bastien.
1025
1026         * MallocBench/MallocBench.xcodeproj/project.pbxproj:
1027         * MediaTime/Configurations/Base.xcconfig:
1028         * MediaTime/MediaTime.xcodeproj/project.pbxproj:
1029
1030 2018-04-30  Myles C. Maxfield  <mmaxfield@apple.com>
1031
1032         Improve the performance of FontCascadeDescription's effectiveFamilies
1033         https://bugs.webkit.org/show_bug.cgi?id=184720
1034
1035         Reviewed by Simon Fraser.
1036
1037         This performance test calls SystemFontDatabase::systemFontCascadeList() around 2,000,000 times (before
1038         this patch is applied), which is roughly equivalent to the page we found the performance problem on.
1039         The calling pattern is roughly equivalent in this test.
1040
1041         * Layout/system-ui.html: Added.
1042
1043 2018-03-08  Antti Koivisto  <antti@apple.com>
1044
1045         Update StyleBench version number in page title to 0.3
1046
1047         * StyleBench/index.html:
1048
1049         There has been a bunch of changes, most notably the addition of attribute selector test step.
1050
1051 2018-02-16  Dean Jackson  <dino@apple.com>
1052
1053         Use OPENGL macros to be more clear about which OpenGL/ES WebGL uses on Cocoa
1054         https://bugs.webkit.org/show_bug.cgi?id=182894
1055
1056         Reviewed by Tim Horton.
1057
1058         Rename OPENGL_ES_2 to OPENGL_ES.
1059
1060         * StitchMarker/wtf/Platform.h:
1061
1062 2018-02-09  Ryosuke Niwa  <rniwa@webkit.org>
1063
1064         Make run-perf-tests work with Speedometer 2.0 and re-enable the test
1065         https://bugs.webkit.org/show_bug.cgi?id=182088
1066
1067         Reviewed by Antti Koivisto.
1068
1069         This patch updates the test harness to report new metrics of Speedometer 2.0.
1070
1071         Replaced the total time by the geometric mean of the time spent in each suite, and added scores
1072         as a metric in addition to time. Also, updated the PerfTestRunner harness and the results template
1073         to support "Score" metric with "pt" as its unit.
1074
1075         * Skipped: Unskipped the test.
1076         * Speedometer/resources/benchmark-report.js:
1077         (window.benchmarkClient.willStartFirstIteration..createTest): Added the unit as an optional argument
1078         to report the score in addition to time. Also report the geomean of time instead of the total time.
1079         (window.benchmarkClient.willStartFirstIteration): Report the geomean of time.
1080         (window.benchmarkClient.didRunSuites): Record the entire measuredValues instead of just tests.
1081         (window.benchmarkClient.didFinishLastIteration): Report the scores.
1082
1083 2018-02-09  Ross Kirsling  <ross.kirsling@sony.com>
1084
1085         Use REQUEST_ANIMATION_FRAME_DISPLAY_MONITOR on any non-Windows port.
1086         https://bugs.webkit.org/show_bug.cgi?id=182623
1087
1088         Reviewed by Alex Christensen.
1089
1090         * StitchMarker/wtf/Platform.h:
1091         Simplify #if.
1092
1093 2018-02-01  Antti Koivisto  <antti@apple.com>
1094
1095         StyleBench: Attribute selectors and other improvements
1096         https://bugs.webkit.org/show_bug.cgi?id=182387
1097
1098         Reviewed by Joseph Pecoraro.
1099
1100         - Add some attributes to elements in all tests
1101         - Add some attribute selectors to stylesheets in all tests
1102         - Also add some * selectors to all stylesheets.
1103         - Add attribute mutation step to all suites
1104         - Make test steps do more mutations (25->100) and reduce the number of steps to keep testing time in check.
1105           Too fast steps were running into timer resolution limits.
1106
1107         * StyleBench/resources/style-bench.js:
1108         (defaultConfiguration):
1109         (prototype.randomAttributeName):
1110         (prototype.randomAttributeValue):
1111         (prototype.randomAttributeSelector):
1112         (prototype.makeCompoundSelector):
1113         (prototype.makeElement):
1114         (prototype.addClasses):
1115         (prototype.removeClasses):
1116         (prototype.mutateAttributes):
1117         (prototype.async.runForever):
1118         * StyleBench/resources/tests.js:
1119         (makeSteps):
1120         (makeSuite):
1121
1122 2018-02-01  Geoffrey Garen  <ggaren@apple.com>
1123
1124         Make MallocBench easier for non-WebKit engineers to run
1125         https://bugs.webkit.org/show_bug.cgi?id=182415
1126
1127         Reviewed by Saam Barati.
1128
1129         * MallocBench/MallocBench.xcodeproj/project.pbxproj: Use c++14 so we
1130         can make_unique.
1131
1132         Specify that we support all Darwin platforms so you can test them.
1133
1134         * MallocBench/run-malloc-benchmarks: Specify the path to MallocBench
1135         and libmbmalloc explicitly, rather than computing them implicitly
1136         using webkitdirs. Non-WebKit folks don't have the directory structure
1137         required by webkitdirs.
1138
1139         Remove Linux-specific and cmake-specific behaviors because we only
1140         needed them in the world of implicit path computation.
1141
1142 2018-01-31  Ryosuke Niwa  <rniwa@webkit.org>
1143
1144         Make run-perf-tests work with StyleBench and re-enable it
1145         https://bugs.webkit.org/show_bug.cgi?id=182322
1146
1147         Reviewed by Antti Koivisto.
1148
1149         This patch updates the test harness to report new metrics of StyleBench.
1150
1151         Replaced the total time by the geometric mean of the time spent in each suite, and added scores
1152         as a metric in addition to time. Also, updated the PerfTestRunner harness and the results template
1153         to support "Score" metric with "pt" as its unit.
1154
1155         * Skipped: Unskipped the test.
1156         * StyleBench/resources/benchmark-report.js:
1157         (window.benchmarkClient.willStartFirstIteration..createTest): Added the unit as an optional argument
1158         to report the score in addition to time. Also report the geomean of time instead of the total time.
1159         (window.benchmarkClient.willStartFirstIteration): Report the geomean of time.
1160         (window.benchmarkClient.didRunSuites): Record the entire measuredValues instead of just tests.
1161         (window.benchmarkClient.didFinishLastIteration): Report the scores.
1162         * resources/results-template.html: Added "Score" as a metric and "pt" as its unit.
1163         * resources/runner.js:
1164         (PerfTestRunner..finish): Ditto.
1165
1166 2018-01-30  Ryosuke Niwa  <rniwa@webkit.org>
1167
1168         StyleBench: Generate more mutation steps
1169         https://bugs.webkit.org/show_bug.cgi?id=182291
1170
1171         Rubber-stamped by Antti Koivisto
1172
1173         Use zero-based index instead of one-based index.
1174
1175         * StyleBench/resources/tests.js:
1176         (makeSteps):
1177
1178 2018-01-30  Antti Koivisto  <antti@apple.com>
1179
1180         StyleBench: Generate more mutation steps
1181         https://bugs.webkit.org/show_bug.cgi?id=182291
1182
1183         Reviewed by Ryosuke Niwa.
1184
1185         The test should be doing multiple rounds of mutations in a single document to test what is supposed to test (like it did before r227756).
1186         This also makes test results more stable and less dependent on possible first-time costs.
1187
1188         * StyleBench/resources/benchmark-runner.js:
1189
1190         Adjust correctionFactor to match the new steps count. With 1.5 Firefox is ~72rpm.
1191
1192         * StyleBench/resources/tests.js:
1193         (makeSteps):
1194
1195         Generate 10 rounds of class/element mutation steps.
1196         Give each generated step unique name so reporting works.
1197         Make individual steps do fewer mutations.
1198
1199 2018-01-29  Antti Koivisto  <antti@apple.com>
1200
1201         StyleBench: Remove : from a test name
1202         https://bugs.webkit.org/show_bug.cgi?id=182258
1203
1204         Reviewed by Ryosuke Niwa.
1205
1206         It breaks reporting.
1207
1208         * StyleBench/resources/style-bench.js:
1209         (nthPseudoClassConfiguration):
1210
1211 2018-01-29  Ryosuke Niwa  <rniwa@webkit.org>
1212
1213         Temporarily skip StyleBench until webkit.org/b/182088 is fixed.
1214
1215         * Skipped:
1216
1217 2018-01-29  Ryosuke Niwa  <rniwa@webkit.org>
1218
1219         Make StyleBench compatible with run-benchmark and run-perf-tests
1220         https://bugs.webkit.org/show_bug.cgi?id=182262
1221
1222         Reviewed by Antti Koivisto.
1223
1224         Copied resource files referenced from Speedometer directory since run-benchmark needs to be able
1225         to checkout each benchmark separately.
1226
1227         Removed the code to create tests of the same name five times in makeSteps since this
1228         won't be compatible with either run-benchmark or run-perf-tests.
1229
1230         * StyleBench/index.html: Removed the code to show warnings for local files since run-benchmark
1231         doesn't use HTTP server in WebDriver mode.
1232         * StyleBench/resources/benchmark-report.js: Copied from resources/benchmark-report.js.
1233         * StyleBench/resources/benchmark-runner.js: Copied from resources/benchmark-runner.js.
1234         (BenchmarkRunner.prototype._finalize): Use the correction factor of 8 instead of 5 in StyleBench.
1235         * StyleBench/resources/gauge.png: Copied from resources/gauge.png.
1236         * StyleBench/resources/gauge@2x.png: Copied from resources/gauge@2x.png.
1237         * StyleBench/resources/main.css: Copied from resources/main.css.
1238         * StyleBench/resources/main.js: Copied from resources/main.js.
1239         * StyleBench/resources/tests.js:
1240         (makeSteps): Only make each test once.
1241
1242 2018-01-26  Chris Nardi  <cnardi@chromium.org>
1243
1244         Addressing post-review comments after r226614
1245         https://bugs.webkit.org/show_bug.cgi?id=182151
1246
1247         Reviewed by Myles C. Maxfield.
1248
1249         * StitchMarker/wtf/text/StringImpl.h:
1250         (WTF::isSpaceOrNewline):
1251         * StitchMarker/wtf/text/TextBreakIterator.cpp:
1252         (WTF::numCodeUnitsInGraphemeClusters):
1253         * StitchMarker/wtf/text/TextBreakIterator.h:
1254
1255 2018-01-22  Antti Koivisto  <antti@apple.com>
1256
1257         StyleBench: Separate test for :nth pseudo classes
1258         https://bugs.webkit.org/show_bug.cgi?id=181932
1259
1260         Reviewed by Sam Weinig.
1261
1262         Optimization strategies for nth are different from other structural pseudo classes (:first-child etc). Move them to a separate test.
1263
1264         * StyleBench/resources/style-bench.js:
1265         (structuralPseudoClassConfiguration):
1266         (nthPseudoClassConfiguration):
1267
1268             Add a new configuration.
1269
1270         (predefinedConfigurations):
1271         (pseudoClassConfiguration): Deleted.
1272
1273 2018-01-17  Ryosuke Niwa  <rniwa@webkit.org>
1274
1275         Temporarily skip Speedometer until we fix the metrics.
1276
1277         * Skipped:
1278
1279 2018-01-16  Alex Christensen  <achristensen@webkit.org>
1280
1281         Fix Mac CMake build after r222900
1282
1283         * MallocBench/MallocBench/CMakeLists.txt:
1284         The mbmalloc target doesn't exist if we're not in developer mode, so only use it if we are.
1285
1286 2018-01-09  Ryosuke Niwa  <rniwa@webkit.org>
1287
1288         Speedometer 2.0: Update the About page.
1289         https://bugs.webkit.org/show_bug.cgi?id=175918
1290
1291         Reviewed by Keith Miller.
1292
1293         Updated the about page for Speedometer 2.0.
1294
1295         * Speedometer/index.html:
1296
1297 == Rolled over to ChangeLog-2018-01-01 ==