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