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