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