[MotionMark] Update Multiply test
[WebKit-https.git] / PerformanceTests / ChangeLog
1 2018-08-13  Jon Lee  <jonlee@apple.com>
2
3         [MotionMark] Update Multiply test
4         https://bugs.webkit.org/show_bug.cgi?id=188532
5         <rdar://problem/43252151>
6
7         Reviewed by Said Abou-Hallawa.
8
9         Update Multiply test to have a larger upper limit of number of particles. Cycle through three
10         different ways of hiding an element. Add new Multiple suite that isolates those components for
11         debugging purposes.
12
13         * MotionMark/resources/debug-runner/tests.js:
14         * MotionMark/tests/dom/multiply.html: Added.
15         * MotionMark/tests/dom/resources/multiply.js: Added.
16         * MotionMark/tests/master/resources/multiply.js:
17
18 2018-08-13  Jon Lee  <jonlee@apple.com>
19
20         [MotionMark] Update Leaves test
21         https://bugs.webkit.org/show_bug.cgi?id=188530
22         <rdar://problem/43251862>
23
24         Reviewed by Said Abou-Hallawa.
25
26         Update Leaves test to include opacity and scale. Add new Leaves suite that isolate those components
27         for debugging purposes.
28
29         * MotionMark/resources/debug-runner/tests.js:
30         * MotionMark/tests/dom/leaves.html:
31         * MotionMark/tests/dom/resources/leaves.js:
32         * MotionMark/tests/master/resources/leaves.js:
33
34 2018-08-10  Ben Richards  <benton_richards@apple.com>
35
36         Add ability to ignore process prewarming for launch time benchmark
37         https://bugs.webkit.org/show_bug.cgi?id=188462
38
39         Reviewed by Ryosuke Niwa.
40
41         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.
42
43         * LaunchTime/launch_time.py:
44         (DefaultLaunchTimeHandler):
45         (DefaultLaunchTimeHandler.on_receive_stop_time): Deleted.
46         (DefaultLaunchTimeHandler.on_receive_stop_signal):
47         (DefaultLaunchTimeHandler.do_HEAD):
48         (DefaultLaunchTimeHandler.do_GET):
49         (DefaultLaunchTimeHandler.do_POST):
50         (LaunchTimeBenchmark):
51         (LaunchTimeBenchmark._standard_deviation): Fixed divide by zero bug when '-n' is set to 1
52         (LaunchTimeBenchmark.open_tab): Added option to open a blank tab
53         (LaunchTimeBenchmark.run):
54         * LaunchTime/new_tab.py:
55         (NewTabBenchmark.initialize):
56         (NewTabBenchmark.run_iteration):
57         (NewTabBenchmark.will_parse_arguments):
58         (NewTabBenchmark.did_parse_arguments):
59         (NewTabBenchmark.ResponseHandler.Handler.get_test_page):
60         (NewTabBenchmark.ResponseHandler.Handler.on_receive_stop_time): Deleted.
61         (NewTabBenchmark.ResponseHandler.Handler.on_receive_stop_signal):
62         (NewTabBenchmark):
63         * LaunchTime/startup.py:
64         (StartupBenchmark.ResponseHandler.Handler.get_test_page):
65         (StartupBenchmark.ResponseHandler.Handler.on_receive_stop_time): Deleted.
66         (StartupBenchmark.ResponseHandler.Handler.on_receive_stop_signal):
67         (StartupBenchmark):
68
69 2018-08-10  Truitt Savell  <tsavell@apple.com>
70
71         Unreviewed, rolling out r234750.
72
73         Caused 185 perf test failures.
74
75         Reverted changeset:
76
77         "Add ability to ignore process prewarming for launch time
78         benchmark"
79         https://bugs.webkit.org/show_bug.cgi?id=188462
80         https://trac.webkit.org/changeset/234750
81
82 2018-08-09  Ben Richards  <benton_richards@apple.com>
83
84         Add ability to ignore process prewarming for launch time benchmark
85         https://bugs.webkit.org/show_bug.cgi?id=188462
86
87         Reviewed by Ryosuke Niwa.
88
89         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.
90
91         * LaunchTime/launch_time.py:
92         (DefaultLaunchTimeHandler):
93         (DefaultLaunchTimeHandler.on_receive_stop_time): Deleted.
94         (DefaultLaunchTimeHandler.on_receive_stop_signal):
95         (DefaultLaunchTimeHandler.do_HEAD):
96         (DefaultLaunchTimeHandler.do_GET):
97         (DefaultLaunchTimeHandler.do_POST):
98         (LaunchTimeBenchmark):
99         (LaunchTimeBenchmark._standard_deviation): Fixed divide by zero bug when '-n' is set to 1
100         (LaunchTimeBenchmark.open_tab): Added option to open a blank tab
101         (LaunchTimeBenchmark.run):
102         * LaunchTime/new_tab.py:
103         (NewTabBenchmark.initialize):
104         (NewTabBenchmark.run_iteration):
105         (NewTabBenchmark.will_parse_arguments):
106         (NewTabBenchmark.did_parse_arguments):
107         (NewTabBenchmark.ResponseHandler.Handler.get_test_page):
108         (NewTabBenchmark.ResponseHandler.Handler.on_receive_stop_time): Deleted.
109         (NewTabBenchmark.ResponseHandler.Handler.on_receive_stop_signal):
110         (NewTabBenchmark):
111         * LaunchTime/startup.py:
112         (StartupBenchmark.ResponseHandler.Handler.get_test_page):
113         (StartupBenchmark.ResponseHandler.Handler.on_receive_stop_time): Deleted.
114         (StartupBenchmark.ResponseHandler.Handler.on_receive_stop_signal):
115         (StartupBenchmark):
116
117 2018-07-26  Andy VanWagoner  <andy@vanwagoner.family>
118
119         [INTL] Remove INTL sub-feature compile flags
120         https://bugs.webkit.org/show_bug.cgi?id=188081
121
122         Reviewed by Michael Catanzaro.
123
124         Removed old and unused i18n flag.
125
126         * StitchMarker/wtf/FeatureDefines.h:
127
128 2018-07-20  David Fenton  <david_fenton@apple.com>
129
130         REGRESSION (234006) ERROR: Blocked access to external URL http://code.jquery.com/jquery-1.9.1.min.js
131         https://bugs.webkit.org/show_bug.cgi?id=187858
132
133         Unreviewed test gardening, skipped test.
134
135         * Skipped: LaunchTime
136
137 2018-07-19  Ben Richards  <benton_richards@apple.com>
138
139         Add benchmark for WebKit process launch times
140         https://bugs.webkit.org/show_bug.cgi?id=186414
141
142         Reviewed by Ryosuke Niwa.
143
144         Added two benchmarks, one for measuring browser new tab launch time and one for browser startup time.
145
146         * LaunchTime/.gitignore: Added.
147         * LaunchTime/feedback_client.html: Added.
148         Displays benchmark progress in browser
149         * LaunchTime/feedback_server.py: Added.
150         (FeedbackServer): Sends data to feedback_client via websocket
151         (FeedbackServer.__init__):
152         (FeedbackServer._create_app):
153         (FeedbackServer._start_server):
154         (FeedbackServer._send_all_messages):
155         (FeedbackServer.start):
156         (FeedbackServer.stop):
157         (FeedbackServer.send_message): Send a message to the feedback_client
158         (FeedbackServer.wait_until_client_has_loaded): Wait until the feedback_client has opened a websocket connection to the feedback_server
159         (FeedbackServer.MainHandler): Handler factory to create handler that serves feedback_client.html
160         (FeedbackServer.MainHandler.Handler):
161         (FeedbackServer.MainHandler.Handler.get):
162         (FeedbackServer.WSHandler): Handler factory to create handler that sends data to feedback client
163         (FeedbackServer.WSHandler.Handler):
164         (FeedbackServer.WSHandler.Handler.open): On websocket connection opened
165         (FeedbackServer.WSHandler.Handler.on_close): On websocket connection closed
166         * LaunchTime/launch_time.py: Added.
167         (DefaultLaunchTimeHandler): Abstract HTTP request handler for launch time benchmarks
168         (DefaultLaunchTimeHandler.get_test_page): Default test page to be overridden by benchmarks
169         (DefaultLaunchTimeHandler.get_blank_page):
170         (DefaultLaunchTimeHandler.on_receive_stop_time):
171         (DefaultLaunchTimeHandler.do_HEAD):
172         (DefaultLaunchTimeHandler.do_GET):
173         (DefaultLaunchTimeHandler.do_POST):
174         (DefaultLaunchTimeHandler.log_message): Suppresses HTTP logs from SimpleHTTPRequestHandler
175         (LaunchTimeBenchmark): Abstract class which launch time benchmarks inherit from and override methods desired to customize
176         (LaunchTimeBenchmark.__init__):
177         (LaunchTimeBenchmark._parse_browser_bundle_path): Parser for bundle path option
178         (LaunchTimeBenchmark._parse_args):
179         (LaunchTimeBenchmark._run_server): Target function for main server thread
180         (LaunchTimeBenchmark._setup_servers):
181         (LaunchTimeBenchmark._clean_up):
182         (LaunchTimeBenchmark._exit_due_to_exception):
183         (LaunchTimeBenchmark._geometric_mean):
184         (LaunchTimeBenchmark._standard_deviation):
185         (LaunchTimeBenchmark._compute_results): Returns mean and std dev of list of results and pretty prints if should_print=True is specified
186         (LaunchTimeBenchmark._wait_times): Mimic numpy.linspace
187         (LaunchTimeBenchmark.open_tab): Open a browser tab with the html given by self.response_handler.get_test_page
188         (LaunchTimeBenchmark.launch_browser): Open a broser to either the feedback client (if option is set) or a blank page
189         (LaunchTimeBenchmark.quit_browser):
190         (LaunchTimeBenchmark.quit_browser.quit_app):
191         (LaunchTimeBenchmark.quit_browser.is_app_closed):
192         (LaunchTimeBenchmark.close_tab):
193         (LaunchTimeBenchmark.wait):
194         (LaunchTimeBenchmark.log): Print to console and send to feedback client if --feedback-in-browser flag is used
195         (LaunchTimeBenchmark.log_verbose): Only logs if --verbose flag is used
196         (LaunchTimeBenchmark.run):
197         (LaunchTimeBenchmark.group_init): Initialization done before each round of iterations
198         (LaunchTimeBenchmark.run_iteration):
199         (LaunchTimeBenchmark.initialize): Convenience method to be overriden by subclasses which is called at the end of __init__
200         (LaunchTimeBenchmark.will_parse_arguments): Called before argparse.parse_args to let subclasses add new command line arguments
201         (LaunchTimeBenchmark.did_parse_arguments): Called after argparse.parse_args to let subclass initialize based on command line arguments
202         * LaunchTime/new_tab.py: Added
203         (NewTabBenchmark):
204         (NewTabBenchmark._parse_wait_time): Parser for wait time option
205         (NewTabBenchmark.initialize):
206         (NewTabBenchmark.run_iteration):
207         (NewTabBenchmark.group_init):
208         (NewTabBenchmark.will_parse_arguments):
209         (NewTabBenchmark.did_parse_arguments):
210         (NewTabBenchmark.ResponseHandler):
211         (NewTabBenchmark.ResponseHandler.Handler):
212         (NewTabBenchmark.ResponseHandler.Handler.get_test_page):
213         * LaunchTime/startup.py: Added
214         (StartupBenchmark): This benchmark measures browser startup time and initial page load time
215         (StartupBenchmark.initialize):
216         (StartupBenchmark.run_iteration):
217         (StartupBenchmark.ResponseHandler):
218         (StartupBenchmark.ResponseHandler.Handler):
219         (StartupBenchmark.ResponseHandler.Handler.get_test_page):
220         * LaunchTime/thirdparty/__init__.py: Added.
221         (AutoinstallImportHook): Auto installs tornado package for feedback server
222         (AutoinstallImportHook.__init__):
223         (AutoinstallImportHook._ensure_autoinstalled_dir_is_in_sys_path):
224         (AutoinstallImportHook.find_module):
225         (AutoinstallImportHook._install_tornado):
226         (AutoinstallImportHook.greater_than_equal_to_version):
227         (AutoinstallImportHook._install):
228         (AutoinstallImportHook.get_latest_pypi_url):
229         (AutoinstallImportHook.install_binary):
230         (autoinstall_everything):
231         (get_os_info):
232
233 2018-06-25  Jon Lee  <jonlee@apple.com>
234
235         [MotionMark] Add support for version numbers
236         https://bugs.webkit.org/show_bug.cgi?id=186479
237
238         Reviewed by Said Abou-Hallawa.
239
240         Add support for displaying the version number as well as including it in the JSON results.
241
242         When loading the front page, script replaces any element with classname version with the
243         version number of the benchmark, which is stored in Strings.version.
244
245         The JSON structure for the results includes a new version property:
246             {
247               "version": "1.0",
248               "options": { ... },
249               "data": [ ... ]
250             }
251
252         When dragging a results file, the version listed will come from the JSON file. Older
253         results will not have had the version property, in which case it will default to "1.0".
254
255         * MotionMark/index.html: Update title to some other default. Script will update it.
256         Include the version number in the logo title.
257         * MotionMark/developer.html: Ditto.
258         * MotionMark/about.html: Ditto.
259
260         * MotionMark/resources/runner/motionmark.js:
261         (ResultsDashboard): Update constructor to include version. This is used when serializing
262         results out to JSON, and displaying the results panel in developer mode.
263         (ResultsDashboard._processData): When running the benchmark, include benchmark version string
264         in the results object.
265         (ResultsDashboard.version):
266         (window.benchmarkRunnerClient.willStartFirstIteration): When running the benchmark, pass the
267         benchmark version string to the dashboard, which holds the results.
268         (window.sectionsManager.setSectionVersion): Helper function to update the element in the
269         section with the class name version.
270         (window.benchmarkController.initialize): Populate all DOM elements with class name "version"
271         with the version string. Update the page title.
272         (window.benchmarkController.showResults): When showing results, update the version string
273         based on what is included in the JSON results, which would be the same as the benchmark version.
274         * MotionMark/resources/runner/motionmark.css: Include missing copyright. Wrap the SVG logo
275         in a div and include the version string.
276         * MotionMark/resources/strings.js: Add strings for the page title template, and the version.
277
278         * MotionMark/resources/debug-runner/motionmark.css:
279         * MotionMark/resources/debug-runner/motionmark.js:
280         (window.benchmarkRunnerClient.willStartFirstIteration): When running the benchmark, pass the
281         benchmark version string to the dashboard, which holds the results.
282         (window.benchmarkController.initialize): Populate all DOM elements with class name "version"
283         with the version string. Update the page title. When dragging in JSON results, look for
284         version to pass to the dashboard. If it doesn't exist, default to "1.0".
285         (window.benchmarkController.showResults): When showing results, update the version string
286         based on what is included in the JSON results, instead of the current benchmark version.
287         * MotionMark/resources/debug-runner/tests.js: Update page title template.
288
289 2018-06-08  Jon Lee  <jonlee@apple.com>
290
291         [MotionMark] Rename Suits test files
292         https://bugs.webkit.org/show_bug.cgi?id=186447
293
294         Reviewed by Said Abou-Hallawa.
295
296         * MotionMark/resources/runner/tests.js:
297         * MotionMark/tests/master/resources/suits.js: Renamed from PerformanceTests/MotionMark/tests/master/resources/svg-particles.js.
298         * MotionMark/tests/master/suits.html: Renamed from PerformanceTests/MotionMark/tests/master/svg-particles.html.
299         * MotionMark/tests/svg/suits.html:
300
301 2018-06-08  Jon Lee  <jonlee@apple.com>
302
303         Add sub-tests based on Suits
304         https://bugs.webkit.org/show_bug.cgi?id=186260
305
306         Reviewed by Said Abou-Hallawa.
307
308         Add a new developer Suits suite with sub-tests that isolate parts of each particle.
309         The sub-tests are:
310             - Particles using only clip paths
311             - Particles using only shapes
312             - Particles that have no gradients
313             - Particles that have no rotation
314             - Particles that do not move around at all (but all of the physics calculations are
315             still performed)
316
317         * MotionMark/resources/debug-runner/tests.js:
318         * MotionMark/tests/master/resources/svg-particles.js: Rename the stage, particle, and
319         benchmark to "Suits" from "SVG". Change SuitsParticle so that we guarantee 50% clip and
320         shape paths rather than relying on random chance. Wrap a check around creation of the
321         gradient element, and use a simple fill color when we aren't using a gradient.
322         * MotionMark/tests/svg/suits.html: Added.
323         * MotionMark/tests/svg/suits.js: Added.
324         Look for the query string and set the particle based on what is selected.
325
326 2018-06-06  Jon Lee  <jonlee@apple.com>
327
328         Allow the ramp controller to run tests that take less time than the initial ramp-up phase
329         https://bugs.webkit.org/show_bug.cgi?id=186257
330
331         Reviewed by Said Abou-Hallawa.
332
333         * MotionMark/tests/resources/main.js: Extend the desired end timestamp when ramp-up occurs.
334         Previously the controller assumed that the duration of the test was always longer than the
335         time it took to figure out the order of magnitude of particles to render. When that range
336         is determined, the end timestamp is then extended. If the duration is too short, the controller
337         would throw an exception. The fix is to continue extending the timestamp every time the order of
338         magnitude tiers up.
339
340         In general testing with really short durations isn't practical, but sometimes it is
341         desired for debugging.
342
343         To avoid confusion of the private variables, I renamed Benchmark._startTimestamp to
344         Benchmark._benchmarkStartTimestamp, to disambiguate from Controller._startTimestamp.
345         Benchmark._startTimestamp is set once and never changed, after the initial 100ms warm-up.
346         Controller._startTimestamp is initialized to 0 (which means "not initialized"), and then after
347         the warm up is complete, set in Controller.start() to the same wall clock timestamp, and never
348         changed afterwards.
349
350 2018-06-06  Jon Lee  <jonlee@apple.com>
351
352         Remove unneeded data processing in MotionMark
353         https://bugs.webkit.org/show_bug.cgi?id=186256
354
355         Reviewed by Said Abou-Hallawa.
356
357         Remove calculation of average frame rate based on multiple samples at a given complexity.
358         It is not used in the calculation of the score, and is just extra work to do at the end
359         of a test.
360
361         * MotionMark/developer.html: Remove options to show average data and regression based on
362         that data.
363         * MotionMark/resources/debug-runner/graph.js: Remove data. Update the time graph that
364         shows the relationship between the break point in the regression against the complexity
365         graph.
366         * MotionMark/resources/debug-runner/motionmark.css: Make the confidence intervals easier
367         to see.
368         * MotionMark/resources/runner/motionmark.js: Simplify score calculation now that we are
369         only calculating regressions on the raw data. We were calculating it based on the averages,
370         but that was just for analysis, and not used in the actual score. Get rid of the
371         |complexitySamples| local variable.
372         * MotionMark/resources/strings.js: Remove unneeded string constant.
373         * MotionMark/tests/resources/main.js:
374         (processSamples): Refactor so that more of it can be shared between Controller and
375         RampController. It also avoids processing the raw samples (controllerSamples) twice for
376         the ramp controller.
377         (_processComplexitySamples): Remove logic to calculate averages based on complexity.
378         (_processMarks): Split this out from the old processSamples.
379         (_processControllerSamples): Split this out from the old processSamples.
380
381 2018-06-06  Jon Lee  <jonlee@apple.com>
382
383         Strip out more characters when creating permalinks
384         https://bugs.webkit.org/show_bug.cgi?id=186259
385
386         Reviewed by Said Abou-Hallawa.
387
388         Tests and suites may have names that make permalinks to the tests less readable when
389         shared. Expand the set of characters that are stripped out of the names.
390
391         * MotionMark/resources/debug-runner/motionmark.js: Refactor to call
392         stripUnwantedCharactersForURL. For existing links, decode the suite and test names.
393         * MotionMark/resources/extensions.js:
394         (Utilities.stripUnwantedCharactersForURL): Rename from stripNonASCIICharacters.
395         Remove any non-alphanumeric character.
396
397 2018-06-04  Jon Lee  <jonlee@apple.com>
398
399         Remove unnecessary MotionMark controllers
400         https://bugs.webkit.org/show_bug.cgi?id=186255
401
402         Reviewed by Said Abou-Hallawa.
403
404         Get rid of the ramp30 and the fixed-with-a-step controllers, which aren't used for testing
405         or debugging.
406
407         * MotionMark/developer.html: Move the "ramp" option as first, since that is the default
408         controller for the benchmark.
409         * MotionMark/resources/debug-runner/motionmark.js:
410         * MotionMark/resources/runner/motionmark.js: Added missing copyright notice.
411         * MotionMark/tests/resources/main.js:
412
413 2018-05-25  Myles C. Maxfield  <mmaxfield@apple.com>
414
415         Improve the performance of Font::canRenderCombiningCharacterSequence()
416         https://bugs.webkit.org/show_bug.cgi?id=185933
417
418         Reviewed by Ryosuke Niwa.
419
420         * Layout/ComplexLongUnique.html: Added.
421
422 2018-05-25  Saam Barati  <sbarati@apple.com>
423
424         Have a memory test where we can validate JSCs mini memory mode
425         https://bugs.webkit.org/show_bug.cgi?id=185932
426
427         Reviewed by Mark Lam.
428
429         We add a directory here with the contents of the testmem benchmark.
430         To run it, use `Tools/Scripts/run-testmem`. To add new tests in the future,
431         you just need to add JS files to this directory.
432
433         * testmem: Added.
434         * testmem/air.js: Added.
435         * testmem/base64.js: Added.
436         * testmem/basic.js: Added.
437         * testmem/box2d.js: Added.
438         * testmem/crypto-md5.js: Added.
439         * testmem/date-format-tofte.js: Added.
440         * testmem/earley-boyer.js: Added.
441         * testmem/hash-map.js: Added.
442         * testmem/regex-dna.js: Added.
443         * testmem/splay.js: Added.
444         * testmem/tagcloud.js: Added.
445
446 2018-05-22  Ryan Haddad  <ryanhaddad@apple.com>
447
448         Unreviewed, rolling out r232052.
449
450         Breaks internal builds.
451
452         Reverted changeset:
453
454         "Use more C++17"
455         https://bugs.webkit.org/show_bug.cgi?id=185176
456         https://trac.webkit.org/changeset/232052
457
458 2018-05-21  Yusuke Suzuki  <utatane.tea@gmail.com>
459
460         Use more C++17
461         https://bugs.webkit.org/show_bug.cgi?id=185176
462
463         Reviewed by JF Bastien.
464
465         * MallocBench/MallocBench.xcodeproj/project.pbxproj:
466         * MediaTime/Configurations/Base.xcconfig:
467         * MediaTime/MediaTime.xcodeproj/project.pbxproj:
468
469 2018-04-30  Myles C. Maxfield  <mmaxfield@apple.com>
470
471         Improve the performance of FontCascadeDescription's effectiveFamilies
472         https://bugs.webkit.org/show_bug.cgi?id=184720
473
474         Reviewed by Simon Fraser.
475
476         This performance test calls SystemFontDatabase::systemFontCascadeList() around 2,000,000 times (before
477         this patch is applied), which is roughly equivalent to the page we found the performance problem on.
478         The calling pattern is roughly equivalent in this test.
479
480         * Layout/system-ui.html: Added.
481
482 2018-03-08  Antti Koivisto  <antti@apple.com>
483
484         Update StyleBench version number in page title to 0.3
485
486         * StyleBench/index.html:
487
488         There has been a bunch of changes, most notably the addition of attribute selector test step.
489
490 2018-02-16  Dean Jackson  <dino@apple.com>
491
492         Use OPENGL macros to be more clear about which OpenGL/ES WebGL uses on Cocoa
493         https://bugs.webkit.org/show_bug.cgi?id=182894
494
495         Reviewed by Tim Horton.
496
497         Rename OPENGL_ES_2 to OPENGL_ES.
498
499         * StitchMarker/wtf/Platform.h:
500
501 2018-02-09  Ryosuke Niwa  <rniwa@webkit.org>
502
503         Make run-perf-tests work with Speedometer 2.0 and re-enable the test
504         https://bugs.webkit.org/show_bug.cgi?id=182088
505
506         Reviewed by Antti Koivisto.
507
508         This patch updates the test harness to report new metrics of Speedometer 2.0.
509
510         Replaced the total time by the geometric mean of the time spent in each suite, and added scores
511         as a metric in addition to time. Also, updated the PerfTestRunner harness and the results template
512         to support "Score" metric with "pt" as its unit.
513
514         * Skipped: Unskipped the test.
515         * Speedometer/resources/benchmark-report.js:
516         (window.benchmarkClient.willStartFirstIteration..createTest): Added the unit as an optional argument
517         to report the score in addition to time. Also report the geomean of time instead of the total time.
518         (window.benchmarkClient.willStartFirstIteration): Report the geomean of time.
519         (window.benchmarkClient.didRunSuites): Record the entire measuredValues instead of just tests.
520         (window.benchmarkClient.didFinishLastIteration): Report the scores.
521
522 2018-02-09  Ross Kirsling  <ross.kirsling@sony.com>
523
524         Use REQUEST_ANIMATION_FRAME_DISPLAY_MONITOR on any non-Windows port.
525         https://bugs.webkit.org/show_bug.cgi?id=182623
526
527         Reviewed by Alex Christensen.
528
529         * StitchMarker/wtf/Platform.h:
530         Simplify #if.
531
532 2018-02-01  Antti Koivisto  <antti@apple.com>
533
534         StyleBench: Attribute selectors and other improvements
535         https://bugs.webkit.org/show_bug.cgi?id=182387
536
537         Reviewed by Joseph Pecoraro.
538
539         - Add some attributes to elements in all tests
540         - Add some attribute selectors to stylesheets in all tests
541         - Also add some * selectors to all stylesheets.
542         - Add attribute mutation step to all suites
543         - Make test steps do more mutations (25->100) and reduce the number of steps to keep testing time in check.
544           Too fast steps were running into timer resolution limits.
545
546         * StyleBench/resources/style-bench.js:
547         (defaultConfiguration):
548         (prototype.randomAttributeName):
549         (prototype.randomAttributeValue):
550         (prototype.randomAttributeSelector):
551         (prototype.makeCompoundSelector):
552         (prototype.makeElement):
553         (prototype.addClasses):
554         (prototype.removeClasses):
555         (prototype.mutateAttributes):
556         (prototype.async.runForever):
557         * StyleBench/resources/tests.js:
558         (makeSteps):
559         (makeSuite):
560
561 2018-02-01  Geoffrey Garen  <ggaren@apple.com>
562
563         Make MallocBench easier for non-WebKit engineers to run
564         https://bugs.webkit.org/show_bug.cgi?id=182415
565
566         Reviewed by Saam Barati.
567
568         * MallocBench/MallocBench.xcodeproj/project.pbxproj: Use c++14 so we
569         can make_unique.
570
571         Specify that we support all Darwin platforms so you can test them.
572
573         * MallocBench/run-malloc-benchmarks: Specify the path to MallocBench
574         and libmbmalloc explicitly, rather than computing them implicitly
575         using webkitdirs. Non-WebKit folks don't have the directory structure
576         required by webkitdirs.
577
578         Remove Linux-specific and cmake-specific behaviors because we only
579         needed them in the world of implicit path computation.
580
581 2018-01-31  Ryosuke Niwa  <rniwa@webkit.org>
582
583         Make run-perf-tests work with StyleBench and re-enable it
584         https://bugs.webkit.org/show_bug.cgi?id=182322
585
586         Reviewed by Antti Koivisto.
587
588         This patch updates the test harness to report new metrics of StyleBench.
589
590         Replaced the total time by the geometric mean of the time spent in each suite, and added scores
591         as a metric in addition to time. Also, updated the PerfTestRunner harness and the results template
592         to support "Score" metric with "pt" as its unit.
593
594         * Skipped: Unskipped the test.
595         * StyleBench/resources/benchmark-report.js:
596         (window.benchmarkClient.willStartFirstIteration..createTest): Added the unit as an optional argument
597         to report the score in addition to time. Also report the geomean of time instead of the total time.
598         (window.benchmarkClient.willStartFirstIteration): Report the geomean of time.
599         (window.benchmarkClient.didRunSuites): Record the entire measuredValues instead of just tests.
600         (window.benchmarkClient.didFinishLastIteration): Report the scores.
601         * resources/results-template.html: Added "Score" as a metric and "pt" as its unit.
602         * resources/runner.js:
603         (PerfTestRunner..finish): Ditto.
604
605 2018-01-30  Ryosuke Niwa  <rniwa@webkit.org>
606
607         StyleBench: Generate more mutation steps
608         https://bugs.webkit.org/show_bug.cgi?id=182291
609
610         Rubber-stamped by Antti Koivisto
611
612         Use zero-based index instead of one-based index.
613
614         * StyleBench/resources/tests.js:
615         (makeSteps):
616
617 2018-01-30  Antti Koivisto  <antti@apple.com>
618
619         StyleBench: Generate more mutation steps
620         https://bugs.webkit.org/show_bug.cgi?id=182291
621
622         Reviewed by Ryosuke Niwa.
623
624         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).
625         This also makes test results more stable and less dependent on possible first-time costs.
626
627         * StyleBench/resources/benchmark-runner.js:
628
629         Adjust correctionFactor to match the new steps count. With 1.5 Firefox is ~72rpm.
630
631         * StyleBench/resources/tests.js:
632         (makeSteps):
633
634         Generate 10 rounds of class/element mutation steps.
635         Give each generated step unique name so reporting works.
636         Make individual steps do fewer mutations.
637
638 2018-01-29  Antti Koivisto  <antti@apple.com>
639
640         StyleBench: Remove : from a test name
641         https://bugs.webkit.org/show_bug.cgi?id=182258
642
643         Reviewed by Ryosuke Niwa.
644
645         It breaks reporting.
646
647         * StyleBench/resources/style-bench.js:
648         (nthPseudoClassConfiguration):
649
650 2018-01-29  Ryosuke Niwa  <rniwa@webkit.org>
651
652         Temporarily skip StyleBench until webkit.org/b/182088 is fixed.
653
654         * Skipped:
655
656 2018-01-29  Ryosuke Niwa  <rniwa@webkit.org>
657
658         Make StyleBench compatible with run-benchmark and run-perf-tests
659         https://bugs.webkit.org/show_bug.cgi?id=182262
660
661         Reviewed by Antti Koivisto.
662
663         Copied resource files referenced from Speedometer directory since run-benchmark needs to be able
664         to checkout each benchmark separately.
665
666         Removed the code to create tests of the same name five times in makeSteps since this
667         won't be compatible with either run-benchmark or run-perf-tests.
668
669         * StyleBench/index.html: Removed the code to show warnings for local files since run-benchmark
670         doesn't use HTTP server in WebDriver mode.
671         * StyleBench/resources/benchmark-report.js: Copied from resources/benchmark-report.js.
672         * StyleBench/resources/benchmark-runner.js: Copied from resources/benchmark-runner.js.
673         (BenchmarkRunner.prototype._finalize): Use the correction factor of 8 instead of 5 in StyleBench.
674         * StyleBench/resources/gauge.png: Copied from resources/gauge.png.
675         * StyleBench/resources/gauge@2x.png: Copied from resources/gauge@2x.png.
676         * StyleBench/resources/main.css: Copied from resources/main.css.
677         * StyleBench/resources/main.js: Copied from resources/main.js.
678         * StyleBench/resources/tests.js:
679         (makeSteps): Only make each test once.
680
681 2018-01-26  Chris Nardi  <cnardi@chromium.org>
682
683         Addressing post-review comments after r226614
684         https://bugs.webkit.org/show_bug.cgi?id=182151
685
686         Reviewed by Myles C. Maxfield.
687
688         * StitchMarker/wtf/text/StringImpl.h:
689         (WTF::isSpaceOrNewline):
690         * StitchMarker/wtf/text/TextBreakIterator.cpp:
691         (WTF::numCodeUnitsInGraphemeClusters):
692         * StitchMarker/wtf/text/TextBreakIterator.h:
693
694 2018-01-22  Antti Koivisto  <antti@apple.com>
695
696         StyleBench: Separate test for :nth pseudo classes
697         https://bugs.webkit.org/show_bug.cgi?id=181932
698
699         Reviewed by Sam Weinig.
700
701         Optimization strategies for nth are different from other structural pseudo classes (:first-child etc). Move them to a separate test.
702
703         * StyleBench/resources/style-bench.js:
704         (structuralPseudoClassConfiguration):
705         (nthPseudoClassConfiguration):
706
707             Add a new configuration.
708
709         (predefinedConfigurations):
710         (pseudoClassConfiguration): Deleted.
711
712 2018-01-17  Ryosuke Niwa  <rniwa@webkit.org>
713
714         Temporarily skip Speedometer until we fix the metrics.
715
716         * Skipped:
717
718 2018-01-16  Alex Christensen  <achristensen@webkit.org>
719
720         Fix Mac CMake build after r222900
721
722         * MallocBench/MallocBench/CMakeLists.txt:
723         The mbmalloc target doesn't exist if we're not in developer mode, so only use it if we are.
724
725 2018-01-09  Ryosuke Niwa  <rniwa@webkit.org>
726
727         Speedometer 2.0: Update the About page.
728         https://bugs.webkit.org/show_bug.cgi?id=175918
729
730         Reviewed by Keith Miller.
731
732         Updated the about page for Speedometer 2.0.
733
734         * Speedometer/index.html:
735
736 == Rolled over to ChangeLog-2018-01-01 ==