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