blob: 82b22cd2837e901e23d89410d58e7ceb5275cafb [file] [log] [blame]
2021-12-17 Rob Buis <rbuis@igalia.com>
[css-contain][Performance test] Add test contain-paint-text-nowrap.html
https://bugs.webkit.org/show_bug.cgi?id=234001
Reviewed by Simon Fraser.
Add test contain-paint-text-nowrap.html to verify that paint containment
improves the case where many contained children have inline text that is
wider than the container width. The improvement is because paint
containment clips the child content.
This patch also introduces the Containment directory to separate the
containment tests.
* Containment/contain-paint-nowrap.html:
* Containment/css-contain-change-size.html: Renamed from PerformanceTests/Layout/css-contain-change-size.html.
* Containment/css-contain-layout-size-inside-complex-document.html: Renamed from PerformanceTests/Layout/css-contain-layout-size-inside-complex-document.html.
* Containment/large-grid.html: Renamed from PerformanceTests/Layout/large-grid.html.
* Paint/lots-of-self-painting-layers.html: use let instead of var
2021-12-14 Jean-Yves Avenard <jya@apple.com>
Distinguish contiguous SharedBuffer from non-contiguous one and guarantee immutability: part 3
https://bugs.webkit.org/show_bug.cgi?id=233677
Reviewed by Youenn Fablet.
* DecoderTest/DecoderTest/main.mm:
(main):
2021-12-13 Cathie Chen <cathiechen@igalia.com>
[Performance test] Add test lots-of-self-painting-layers.html
https://bugs.webkit.org/show_bug.cgi?id=233684
Reviewed by Rob Buis.
This test is a transform of the test [1] in blink. It uses position: relative to create
lots of self-painting layers. By changing the first layer's height, it tracks the repaint
performance of these self-painting layers.
[1] third_party/blink/perf_tests/layout/contain-content-style-change.html
* Paint/lots-of-self-painting-layers.html: Added.
2021-12-08 Alan Bujtas <zalan@apple.com>
Add layout performance test for simple bidi content with inline boxes
https://bugs.webkit.org/show_bug.cgi?id=234062
Unreviewed.
This is in preparation for enabling IFC bidi handling.
* Layout/line-layout-simple-bidi-with-inline-boxes.html: Added.
2021-12-08 Alan Bujtas <zalan@apple.com>
Add layout performance test for bidi content with direction override inside inline boxes
https://bugs.webkit.org/show_bug.cgi?id=234064
Unreviewed.
This is in preparation for enabling IFC bidi handling.
* Layout/line-layout-simple-bidi-with-direction-overrides-in-inline-boxes.html: Added.
2021-12-07 Cathie Chen <cathiechen@igalia.com>
[Performance test][css-contain] Add test large-grid.html
https://bugs.webkit.org/show_bug.cgi?id=233628
Reviewed by Rob Buis.
This test large-grid.html is imported from Chromium, and we change it a little bit.
This case tests the performance of getting gridContainer.offsetHeight which is the parent of
a large grid with `contain: strict`. The performance is improved when enable CSS contain,
because offsetHeight returns the value directly if the element doesn't need relayout, see
`Document::updateLayoutIfDimensionsOutOfDate`. `contain: strict` sets a relayout boundary to
the large grid, so when its subtree changes, the container of the large grid doesn't need
relayout.
* Layout/large-grid.html: Added.
2021-12-06 Zan Dobersek <zdobersek@igalia.com>
[RAMification] Add support for dumping smaps rollups on Linux
https://bugs.webkit.org/show_bug.cgi?id=233867
Reviewed by Yusuke Suzuki.
Add the option to dump smaps rollup after the end of each RAMification
test case. This mirrors the vmmap functionality and is implemented
alongside that option.
Once the jsc binary is left idle after the test case run, the
smaps_rollup output for the given jsc process is collected from the
proc filesystem. This material is then printed out after the test
is done, following the memory footprint dump.
For now this prefers the smaps_rollup instead of the complete smaps.
In this form, it already gives a good insight into the balance between
the proportional and residential set size amounts. Complete smaps could
be beneficial later, especially if we can implement differentiation
between allocations of different types and/or purposes.
* JetStream2/RAMification.py:
(parseArgs):
(BaseRunner.__init__):
(BaseRunner.getResults):
(LocalRunner.runOneTest):
(main):
(main.runTestList):
2021-11-21 Cathie Chen <cathiechen@igalia.com>
[Performance test][css-contain] Add case to test contain: layout inside a complex document
https://bugs.webkit.org/show_bug.cgi?id=232883
Reviewed by Rob Buis.
This case test the performance of changing the content of a layout containment which is
inside a complex document.
* Layout/css-contain-layout-size-inside-complex-document.html: Added.
2021-11-19 Alan Bujtas <zalan@apple.com>
Add layout performance test for simple bidi content
(this is not about inline axis direction, just mixed, bidirectional content)
Unreviewed.
* Layout/line-layout-simple-bidi.html: Added.
2021-11-19 Angelos Oikonomopoulos <angelos@igalia.com>
[JSC] Workaround for failing mips tests
https://bugs.webkit.org/show_bug.cgi?id=233359
Reviewed by Adrian Perez de Castro.
Re-enable tests skipped on mips after adding workaround.
* ARES-6/Basic/basic-tests.yaml:
2021-11-15 Angelos Oikonomopoulos <angelos@igalia.com>
Skip tests newly-failing on mips
https://bugs.webkit.org/show_bug.cgi?id=233124
Unreviewed gardening.
After 3f59d2aa489ec843e055fc3104c275851d7fbd35, these tests started
failing with a SIGBUS on MIPS (on fuloong hardware, they pass on the
ci20 boards). Temporarily skip them on this arch until we can track
down the issue.
* ARES-6/Basic/basic-tests.yaml:
2021-11-10 Sergio Villar Senin <svillar@igalia.com>
[css-flexbox] Improve & simplify the flex-basis computation
https://bugs.webkit.org/show_bug.cgi?id=230755
Reviewed by Alan Bujtas.
New test case to catch performance regressions with lots of nested (specially column) flexboxes.
* Layout/nested-flexbox.html: Added.
2021-11-10 Yusuke Suzuki <ysuzuki@apple.com>
Unreviewed, fix broken test
https://bugs.webkit.org/show_bug.cgi?id=232949
useGrouping: 'false' is no longer allowed according to the spec.
* Intl/numberformat-format-all-options.html:
2021-10-14 Myles C. Maxfield <mmaxfield@apple.com>
All the SDKVariant.xcconfig files should match
https://bugs.webkit.org/show_bug.cgi?id=231663
Reviewed by Youenn Fablet.
* MediaTime/Configurations/SDKVariant.xcconfig:
2021-09-07 Myles C. Maxfield <mmaxfield@apple.com>
Add a PerformanceTest for some common FontFaceSet style update operations
https://bugs.webkit.org/show_bug.cgi?id=229913
Reviewed by Stephanie Lewis.
This is similar to some of the operations we've seen in the wild.
We want to make sure we can do these fast.
* CSS/FontFaceSetUpdateStyle.html: Added.
2021-08-06 Michael Catanzaro <mcatanzaro@gnome.org>
MallocBench: fix ODR violation
https://bugs.webkit.org/show_bug.cgi?id=228874
Reviewed by Geoffrey Garen.
When built with LTO enabled, GCC will warn about violations of C++'s one-definition rule.
MallocBench has two different Objects in two different files, which is illegal. We could
rename one of them, but I decided it's simplest to just put them each in anonymous
namespaces in order to restrict them to file scope.
* MallocBench/MallocBench/big.cpp:
* MallocBench/MallocBench/stress.cpp:
2021-07-25 Cathie Chen <cathiechen@igalia.com>
[Performance test][css-contain] Add test to contain: size layout
https://bugs.webkit.org/show_bug.cgi?id=227948
Reviewed by Ryosuke Niwa.
This test emulates the scenario that a small part of the page is changed. If it's applied contain: size layout,
the performance should be improved. This test is a transform of the test [1] in blink.
[1] third_party/blink/perf_tests/layout/css-contain-change-text.html
* Layout/css-contain-change-size.html: Added.
2021-07-16 Manuel Rego Casasnovas <rego@igalia.com>
Remove CSS Regions perf tests
https://bugs.webkit.org/show_bug.cgi?id=228016
Reviewed by Ryosuke Niwa.
The feature has been removed long time ago, so let's do the same with the associated perf tests.
* Layout/RegionsAuto.html: Removed.
* Layout/RegionsAutoMaxHeight.html: Removed.
* Layout/RegionsExtendingSelectionMixedContent.html: Removed.
* Layout/RegionsFixed.html: Removed.
* Layout/RegionsFixedShort.html: Removed.
* Layout/RegionsSelectAllMixedContent.html: Removed.
* Layout/RegionsSelection.html: Removed.
* Layout/RegionsShapes.html: Removed.
* Layout/Shapes/RegionsShapesNoShapes.html: Removed.
* Layout/Shapes/resources/RegionsShapesContent.html: Removed.
* Layout/Shapes/resources/RegionsShapesContentNoShapes.html: Removed.
* Layout/resources/regions.css: Removed.
* Layout/resources/regions.js: Removed.
2021-06-03 Said Abou-Hallawa <said@apple.com>
[MotionMark] Controller.filterOutOutliers() sorts the frameLengths array incorrectly
https://bugs.webkit.org/show_bug.cgi?id=226605
Reviewed by Myles C. Maxfield.
Controller.filterOutOutliers must pass a compare function to Array.sort()
because it filters an array of numbers.
* MotionMark/tests/resources/main.js:
(filterOutOutliers):
2021-06-03 Myles C. Maxfield <mmaxfield@apple.com>
[MotionMark] Update version number of local development version of the benchmark to match the currently-being-released version
https://bugs.webkit.org/show_bug.cgi?id=226592
Reviewed by Darin Adler.
We are currently in the process of releasing MotionMark 1.2. http://browserbench.org/MotionMark1.2/
* MotionMark/about.html:
* MotionMark/resources/strings.js:
2021-05-21 Sam Sneddon <gsnedders@apple.com>
Fix Python 3.6+ DeprecationWarnings about unknown escapes
https://bugs.webkit.org/show_bug.cgi?id=226018
Reviewed by Jonathan Bedard.
Fix Python 3.6+ DeprecationWarnings about unknown escapes
* JetStream2/RAMification.py:
* JetStream2/RexBench/FlightPlanner/convert-nfdc.py:
* RexBench/FlightPlanner/convert-nfdc.py:
2021-05-12 Myles C. Maxfield <mmaxfield@apple.com>
[MotionMark] Temporarily remove the focus test
https://bugs.webkit.org/show_bug.cgi?id=225714
Reviewed by Geoffrey Garen.
The focus test is causing unacceptably high variance on test results. Initial investigation
indicates that this is related to secondary and tertiary interactions between the browser's
runloop and the compositor's runloop. Not only that, but the variable cost of the focus test
seems to affect the variance on the subtests which run after it.
This patch temporarily removes the focus test, just so we can get a stronger signal of
browsers' true performance, while we do a deeper analysis of the focus test.
Because the focus test's score is lower than the average score of the subtests, removing it
causes scores in all browsers to increase:
| WebKit | Chrome | Firefox
================================================
Score with Focus | 1020 | 550 | 962
Score without Focus | 1623 | 874 | 1101
Stddev with Focus | 9.3% | 2.3% | 2.9%
Stddev without Focus | 0.7% | 0.5% | 7.9%
* MotionMark/resources/runner/tests.js:
2021-04-19 Kimmo Kinnunen <kkinnunen@apple.com>
Enable -Wthread-safety, add attributes to custom lock classes, and provide macros to declare guards
https://bugs.webkit.org/show_bug.cgi?id=221614
<rdar://problem/74396781>
Reviewed by David Kilzer.
Add -Wthread-safety to compile flags.
* DecoderTest/Configurations/Base.xcconfig:
2021-04-12 Sergio Villar Senin <svillar@igalia.com>
[css-flexbox] CDC COVID Vaccine Tracker: Safari garbles data table
https://bugs.webkit.org/show_bug.cgi?id=222581
Reviewed by Zalan Bujtas.
* Layout/nested-flexboxes-percentage-flex-basis.html: Added.
2021-03-17 Myles C. Maxfield <mmaxfield@apple.com>
Laying out complex text in columns is O(n^2)
https://bugs.webkit.org/show_bug.cgi?id=223363
<rdar://problem/68279075>
Reviewed by Zalan Bujtas.
* Layout/complex-columns.html: Added.
2021-03-09 Myles C. Maxfield <mmaxfield@apple.com>
MotionMark scores are super sensitive to a single long frame
https://bugs.webkit.org/show_bug.cgi?id=220847
<rdar://problem/74152743>
Reviewed by Jon Lee.
Currently, "ramp" tests have three phases. The middle phase is where they try to determine a maximum reasonable
complexity, and the third one is where they try various complexities between 0 and the maximum. The calculation
of this maximum reasonable complexity is currently very sensitive to outlier frame times. If there is a single
outlier frame time, the failure mode is to assume that the maximum complexity is ~10. So, the solution is to
ignore outlier frame times during this first phase, and to ensure that there are at least 9 frames measured that
have non-outlier times.
This test also changes the speed of the middle phase. Previously, each interval during this phase had
a complexity that was 3.16x of the previous complexity. This patch changes that to 1.78x of the previous
complexity for complexities above 50, and 1.33x for complexities above 10,000.
* MotionMark/tests/resources/main.js:
(filterOutOutliers):
(_measureAndResetInterval):
(update):
(registerFrameTime):
(intervalHasConcluded):
(start):
(didFinishInterval):
2021-02-26 Zalan Bujtas <zalan@apple.com>
[Performance test][Line layout] Add test with inline boxes
https://bugs.webkit.org/show_bug.cgi?id=222498
Reviewed by Ryosuke Niwa.
We don't have a performance test on inline boxes yet.
* Layout/line-layout-inline-level-boxes.html: Added.
2021-02-25 Commit Queue <commit-queue@webkit.org>
Unreviewed, reverting r273122 and r273123.
https://bugs.webkit.org/show_bug.cgi?id=222449
Didn't fix the extreme test variance, and caused some internal
performance bots to hang during testing
Reverted changesets:
"MotionMark scores are super sensitive to a single long frame"
https://bugs.webkit.org/show_bug.cgi?id=220847
https://trac.webkit.org/changeset/273122
"MotionMark scores are super sensitive to a single long frame"
https://bugs.webkit.org/show_bug.cgi?id=220847
https://trac.webkit.org/changeset/273123
2021-02-22 Sergio Villar Senin <svillar@igalia.com>
REGRESSION (r266695): twitch.tv: when in fullscreen, WebKit continually does 350ms layouts. Firefox and Chrome do not
https://bugs.webkit.org/show_bug.cgi?id=222202
<rdar://problem/74537782>
Reviewed by Simon Fraser.
New performance test for nested column flexboxes with percentage heights.
* Layout/nested-column-flexboxes-relative-height.html: Added.
2021-02-18 Myles C. Maxfield <mmaxfield@apple.com>
MotionMark scores are super sensitive to a single long frame
https://bugs.webkit.org/show_bug.cgi?id=220847
<rdar://problem/74152743>
Reviewed by Maciej Stachowiak and Jon Lee.
Currently, "ramp" tests have three phases. The middle phase is where they try to determine a maximum reasonable
complexity, and the third one is where they try various complexities between 0 and the maximum. The calculation
of this maximum reasonable complexity is currently very sensitive to outlier frame times. If there is a single
outlier frame time, the failure mode is to assume that the maximum complexity is ~10. So, the solution is to
ignore outlier frame times during this first phase, and to ensure that there are at least 9 frames measured that
have non-outlier times.
* MotionMark/tests/resources/main.js:
(filterOutOutliers):
(_measureAndResetInterval):
(update):
(registerFrameTime):
(intervalHasConcluded):
(start):
(didFinishInterval):
2021-01-28 Myles C. Maxfield <mmaxfield@apple.com>
MotionMark focus test can cause extreme variance in whichever test runs directly after it
https://bugs.webkit.org/show_bug.cgi?id=221075
<rdar://problem/72143661>
Reviewed by Said Abou-Hallawa.
The focus test loads up the window server with work, which runs asynchronously from WebKit's run loop.
This means that the window server can still be busy when the next test starts.
In r270959 we already tried to combat this, and it was mostly successful, but not as successful as we'd
like. This patch goes further by:
1. Bumping up the warmup timeout to 2000ms from 1000ms
2. Making the warmup render at least 30 frames. This means that a single extremely long frame can't
fill up the entire warmup period.
* MotionMark/developer.html:
* MotionMark/resources/runner/motionmark.js:
(this.clear):
* MotionMark/tests/resources/main.js:
(Benchmark.Utilities.createClass):
(_animateLoop):
2021-01-03 Beth Dakin <bdakin@apple.com>
Remove non-inclusive language from JetStream 2.0
https://bugs.webkit.org/show_bug.cgi?id=220109
Reviewed by Anders Carlsson.
* JetStream2/code-load/inspector-payload.js:
(WebInspector.DOMNode.WebInspector.Resource.WebInspector.ConsoleMessageView.prototype._formatWithSubstitutionString.styleFormatter):
(WebInspector.DOMNode.WebInspector.Resource.WebInspector.ConsoleMessageView.prototype._formatWithSubstitutionString.isAllowlistedProperty):
(WebInspector.DOMNode.WebInspector.Resource.WebInspector.ConsoleMessageView.prototype._formatWithSubstitutionString.isWhitelistedProperty): Deleted.
* JetStream2/web-tooling-benchmark/cli.js:
2020-12-17 Said Abou-Hallawa <said@apple.com>
[MotionMark] Increase the warm-up time for each sub-test from 100ms to 1000ms
https://bugs.webkit.org/show_bug.cgi?id=219984
Reviewed by Jon Lee.
Ensure the warm-up time is enough for the system to finish any initialization
work which may be triggered by the sub-test before starting the sampling.
This should prevent bi-modality in the score of the sub-tests since the
initial frame rate is crucial in deciding how much the complexity can grow.
* MotionMark/developer.html:
* MotionMark/resources/runner/motionmark.js:
(this.clear):
2020-12-14 Antti Koivisto <antti@apple.com>
Add inline-block line layout microbench
https://bugs.webkit.org/show_bug.cgi?id=219854
Reviewed by Zalan Bujtas.
* Layout/line-layout-inline-block.html: Added.
2020-12-11 Geoffrey Garen <ggaren@apple.com>
Eliminate 'async time' in StyleBench
https://bugs.webkit.org/show_bug.cgi?id=219785
Reviewed by Antti Koivisto.
r270132 (a RunLoop change) measured as a 13% regression on the
StyleBench bot. But I don't think the measured regression was user-real.
Instead, I think the baseline score was artificially high because 'async
time' sometimes did not measure painting.
I decided just to eliminate 'async time' (and force style resolution +
layout during 'sync time') because this benchmark intends to measure
style resolution + layout, and not painting or frame rate.
With this change, there is no measured regression anymore.
Explanation of 'did not measure painting':
StyleBench synchronously modifies DOM + style, and then sets a
zero-delay timer to measure 'async time'. If layout has not
happened by the time the timer fires, StyleBench forces layout
and then computes 'async time'. The flaw here is painting.
StyleBench accepts both of these orders of operations as valid:
(A) { modify DOM + style }, { measure 'sync time' }, { style resolution + layout }, { paint }, { measure 'async time' }
(B) { modify DOM + style }, { measure 'sync time' }, { style resolution + layout }, { measure 'async time' }, { paint }
^ (B) includes more stuff than (A). Not cool!
Evidence for the theory that the baseline was sometimes doing (B):
* Forcing style resolution + layout during sync time reduces the
baseline score and eliminates the difference in async time
between baseline and patch.
* Starting the benchmark from a requestAnimationFrame() instead
of a timer reduces the baseline score and eliminates the
difference in async time between baseline and patch.
* The regression only reproduced on machines with fewer cores.
* The new benchmark method reduces sttdev by ~3X - ~5X.
* StyleBench/resources/benchmark-runner.js:
(BenchmarkRunner.prototype._runTest): Call getBoundingClientRect()
during sync time to force style resolution + layout consistently.
Always report async time as 1, since this benchmark doesn't have an
async time component anymore. (The harness doesn't like zeroes.)
Just store height in a global because that is sufficient to prevent
dead code elimination (which was probably impossible anyway, since
getBoundingClientRect() has side effects).
2020-12-10 Tadeu Zagallo <tzagallo@apple.com>
Removing unnecessary locking from JSValue API functions
https://bugs.webkit.org/show_bug.cgi?id=219723
Reviewed by Filip Pizlo.
Print an error message when benchmarks fail to run and add option to change
the configuration used to build the benchmarks.
* APIBench/api-bench:
2020-12-10 Tadeu Zagallo <tzagallo@apple.com>
Add a JSC API to allow acquiring the JSLock
https://bugs.webkit.org/show_bug.cgi?id=219663
Reviewed by Filip Pizlo.
This patch does 3 things:
- Change how the geomean is calculated in api-bench to avoid overflowing
- Allow linking against the local build we're benchmarking
- Adopt the new JSLock API in the UpcomingAPI subtests
Using the new API the score improves by ~13.5%. Here are the results for each
of the "UpcomingAPI" subtests plus the total score:
Before After
RichardsMostlyC: 77ms 23ms
RichardsMostlyObjC: 309ms 282ms
RichardsMostlySwift 305ms 280ms
RichardsSomeC: 101ms 95ms
RichardsSomeObjC: 160ms 157ms
RichardsSomeSwift: 201ms 202ms
------------------------------------------
Score: 29.5974 33.6404
* APIBench/UpcomingAPI/RichardsMostlyC/RichardsMostlyC/richards.c:
(workfn):
* APIBench/UpcomingAPI/RichardsMostlyObjC/RichardsMostlyObjC.xcodeproj/xcshareddata/xcschemes/RichardsMostlyObjC.xcscheme: Renamed from PerformanceTests/APIBench/UpcomingAPI/RichardsMostlyObjC/RichardsMostlyObjC.xcodeproj/xcshareddata/xcschemes/RichardsMostlySwift.xcscheme.
* APIBench/UpcomingAPI/RichardsMostlyObjC/RichardsMostlyObjC/WorkerTask.m:
(+[WorkerTask context]):
* APIBench/UpcomingAPI/RichardsMostlySwift/RichardsMostlySwift.xcodeproj/project.pbxproj:
* APIBench/UpcomingAPI/RichardsMostlySwift/RichardsMostlySwift/BridgingHeader.h: Copied from PerformanceTests/APIBench/UpcomingAPI/RichardsMostlySwift/RichardsMostlySwift/WorkerTask.swift.
* APIBench/UpcomingAPI/RichardsMostlySwift/RichardsMostlySwift/WorkerTask.swift:
* APIBench/UpcomingAPI/RichardsSomeC/RichardsSomeC/main.m:
(main):
* APIBench/UpcomingAPI/RichardsSomeObjC/RichardsSomeObjC/main.m:
(main):
* APIBench/UpcomingAPI/RichardsSomeSwift/RichardsSomeSwift.xcodeproj/project.pbxproj:
* APIBench/UpcomingAPI/RichardsSomeSwift/RichardsSomeSwift/BridgingHeader.h: Copied from PerformanceTests/APIBench/UpcomingAPI/RichardsMostlySwift/RichardsMostlySwift/WorkerTask.swift.
* APIBench/UpcomingAPI/RichardsSomeSwift/RichardsSomeSwift/main.swift:
* APIBench/api-bench:
2020-12-07 Don Olmstead <don.olmstead@sony.com>
[CMake] Remove WEBKIT_WRAP_SOURCELIST
https://bugs.webkit.org/show_bug.cgi?id=196916
Reviewed by Michael Catanzaro.
* MallocBench/MallocBench/CMakeLists.txt:
2020-12-04 Adam Roben <aroben@apple.com>
More FALLBACK_PLATFORM adoption
https://bugs.webkit.org/show_bug.cgi?id=219545
Reviewed by Tim Horton.
* MediaTime/Configurations/SDKVariant.xcconfig:
WK_EMPTY_$(THIS_IS_NOT_EMPTY) evaluates to the empty string, not to
NO.
2020-12-03 Adam Roben <aroben@apple.com>
Adopt FALLBACK_PLATFORM
https://bugs.webkit.org/show_bug.cgi?id=219504
Reviewed by Tim Horton.
* MediaTime/Configurations/SDKVariant.xcconfig: Use FALLBACK_PLATFORM
it if it's defined, otherwise use PLATFORM_NAME as before.
2020-11-30 Tadeu Zagallo <tzagallo@apple.com>
Add C and ObjC tests to APIBench
https://bugs.webkit.org/show_bug.cgi?id=219246
Reviewed by Yusuke Suzuki.
The benchmark now consists of two groups: initially they are identical, but the first group will not
be changed going forward while the second group will be free to adopt new APIs.
The two original tests (one mostly JS and the other mostly native) were also split into three tests each (C, ObjC and Swift).
* APIBench/CurrentAPI/RichardsMostlyC/RichardsMostlyC.xcodeproj/project.pbxproj: Copied from PerformanceTests/APIBench/RichardsMostlyJS/RichardsMostlyJS.xcodeproj/project.pbxproj.
* APIBench/CurrentAPI/RichardsMostlyC/RichardsMostlyC.xcodeproj/xcshareddata/xcschemes/RichardsMostlyC.xcscheme: Copied from PerformanceTests/APIBench/RichardsSwift/RichardsSwift.xcodeproj/xcshareddata/xcschemes/RichardsSwift.xcscheme.
* APIBench/CurrentAPI/RichardsMostlyC/RichardsMostlyC/richards.c: Added.
(pkt):
(trace):
(schedule):
(wait_):
(holdself):
(findtcb):
(release):
(qpkt):
(idlefn):
(valueToTask):
(waitWrapper):
(qpktWrapper):
(readFile):
(workfn):
(handlerfn):
(devfn):
(append):
(setup):
(getQpktcount):
(getHoldcount):
(main):
* APIBench/CurrentAPI/RichardsMostlyC/RichardsMostlyC/richards.js: Copied from PerformanceTests/APIBench/RichardsSwift/RichardsSwift/main.swift.
(createWorkfn):
* APIBench/CurrentAPI/RichardsMostlyObjC/RichardsMostlyObjC.xcodeproj/project.pbxproj: Copied from PerformanceTests/APIBench/RichardsMostlySwift/RichardsMostlySwift.xcodeproj/project.pbxproj.
* APIBench/CurrentAPI/RichardsMostlyObjC/RichardsMostlyObjC.xcodeproj/xcshareddata/xcschemes/RichardsMostlySwift.xcscheme: Copied from PerformanceTests/APIBench/RichardsSwift/RichardsSwift.xcodeproj/xcshareddata/xcschemes/RichardsSwift.xcscheme.
* APIBench/CurrentAPI/RichardsMostlyObjC/RichardsMostlyObjC/Device.h: Copied from PerformanceTests/APIBench/RichardsSwift/RichardsSwift/main.swift.
* APIBench/CurrentAPI/RichardsMostlyObjC/RichardsMostlyObjC/DeviceTask.h: Copied from PerformanceTests/APIBench/RichardsSwift/RichardsSwift/main.swift.
* APIBench/CurrentAPI/RichardsMostlyObjC/RichardsMostlyObjC/DeviceTask.m: Copied from PerformanceTests/APIBench/RichardsSwift/RichardsSwift/main.swift.
(+[DeviceTask createWithScheduler:device:priority:]):
(-[DeviceTask run:]):
* APIBench/CurrentAPI/RichardsMostlyObjC/RichardsMostlyObjC/HandlerTask.h: Copied from PerformanceTests/APIBench/RichardsSwift/RichardsSwift/main.swift.
* APIBench/CurrentAPI/RichardsMostlyObjC/RichardsMostlyObjC/HandlerTask.m: Copied from PerformanceTests/APIBench/RichardsMostlySwift/RichardsMostlySwift/DeviceTask.swift.
(+[HandlerTask createWithScheduler:device:priority:queue:]):
(-[HandlerTask run:]):
* APIBench/CurrentAPI/RichardsMostlyObjC/RichardsMostlyObjC/IdleTask.h: Copied from PerformanceTests/APIBench/RichardsSwift/RichardsSwift/main.swift.
* APIBench/CurrentAPI/RichardsMostlyObjC/RichardsMostlyObjC/IdleTask.m: Copied from PerformanceTests/APIBench/RichardsSwift/RichardsSwift/main.swift.
(+[IdleTask createWithScheduler:priority:]):
(-[IdleTask run:]):
* APIBench/CurrentAPI/RichardsMostlyObjC/RichardsMostlyObjC/Packet.h: Copied from PerformanceTests/APIBench/RichardsSwift/RichardsSwift/Packet.swift.
* APIBench/CurrentAPI/RichardsMostlyObjC/RichardsMostlyObjC/Packet.m: Copied from PerformanceTests/APIBench/RichardsSwift/RichardsSwift/IdleTask.swift.
(+[Packet create:withLink:]):
(-[Packet addToQueue:]):
(+[DevicePacket create:withLink:]):
(+[WorkPacket createWithLink:]):
(+[WorkPacket size]):
* APIBench/CurrentAPI/RichardsMostlyObjC/RichardsMostlyObjC/Scheduler.h: Added.
* APIBench/CurrentAPI/RichardsMostlyObjC/RichardsMostlyObjC/Scheduler.m: Added.
(-[Scheduler schedule]):
(-[Scheduler addTask:]):
(-[Scheduler releaseDevice:]):
(-[Scheduler holdCurrent]):
(-[Scheduler waitCurrent]):
(-[Scheduler queue:]):
(-[Scheduler handle:]):
(-[Scheduler _queueImpl:packet:]):
(-[Scheduler _find:]):
* APIBench/CurrentAPI/RichardsMostlyObjC/RichardsMostlyObjC/Task.h: Copied from PerformanceTests/APIBench/RichardsMostlySwift/RichardsMostlySwift/DeviceTask.swift.
* APIBench/CurrentAPI/RichardsMostlyObjC/RichardsMostlyObjC/Task.m: Added.
(+[Task createWithScheduler:priority:queue:]):
(-[Task run:]):
(-[Task release_]):
(-[Task hold]):
(-[Task wait]):
(-[Task resume]):
(-[Task takePacket]):
(-[Task checkPriorityAdd:packet:]):
* APIBench/CurrentAPI/RichardsMostlyObjC/RichardsMostlyObjC/WorkerTask.h: Copied from PerformanceTests/APIBench/RichardsSwift/RichardsSwift/main.swift.
* APIBench/CurrentAPI/RichardsMostlyObjC/RichardsMostlyObjC/WorkerTask.m: Added.
(+[WorkerTask createWithScheduler:priority:queue:]):
(+[WorkerTask context]):
(+[WorkerTask constructor]):
(-[WorkerTask run:]):
* APIBench/CurrentAPI/RichardsMostlyObjC/RichardsMostlyObjC/main.m: Added.
(runRichards):
(main):
* APIBench/CurrentAPI/RichardsMostlyObjC/RichardsMostlyObjC/richards.js: Copied from PerformanceTests/APIBench/RichardsMostlySwift/RichardsMostlySwift/richards.js.
(return.prototype.run):
* APIBench/CurrentAPI/RichardsMostlyObjC/RichardsMostlyObjC/richards.m: Copied from PerformanceTests/APIBench/RichardsSwift/RichardsSwift/main.swift.
* APIBench/CurrentAPI/RichardsMostlySwift/RichardsMostlySwift.xcodeproj/project.pbxproj: Copied from PerformanceTests/APIBench/RichardsMostlySwift/RichardsMostlySwift.xcodeproj/project.pbxproj.
* APIBench/CurrentAPI/RichardsMostlySwift/RichardsMostlySwift.xcodeproj/xcshareddata/xcschemes/RichardsMostlySwift.xcscheme: Copied from PerformanceTests/APIBench/RichardsMostlySwift/RichardsMostlySwift.xcodeproj/xcshareddata/xcschemes/RichardsMostlySwift.xcscheme.
* APIBench/CurrentAPI/RichardsMostlySwift/RichardsMostlySwift/DeviceTask.swift: Copied from PerformanceTests/APIBench/RichardsMostlySwift/RichardsMostlySwift/DeviceTask.swift.
* APIBench/CurrentAPI/RichardsMostlySwift/RichardsMostlySwift/HandlerTask.swift: Copied from PerformanceTests/APIBench/RichardsMostlySwift/RichardsMostlySwift/HandlerTask.swift.
* APIBench/CurrentAPI/RichardsMostlySwift/RichardsMostlySwift/IdleTask.swift: Copied from PerformanceTests/APIBench/RichardsMostlySwift/RichardsMostlySwift/IdleTask.swift.
* APIBench/CurrentAPI/RichardsMostlySwift/RichardsMostlySwift/Packet.swift: Copied from PerformanceTests/APIBench/RichardsMostlySwift/RichardsMostlySwift/Packet.swift.
* APIBench/CurrentAPI/RichardsMostlySwift/RichardsMostlySwift/Scheduler.swift: Copied from PerformanceTests/APIBench/RichardsMostlySwift/RichardsMostlySwift/Scheduler.swift.
* APIBench/CurrentAPI/RichardsMostlySwift/RichardsMostlySwift/Task.swift: Copied from PerformanceTests/APIBench/RichardsMostlySwift/RichardsMostlySwift/Task.swift.
* APIBench/CurrentAPI/RichardsMostlySwift/RichardsMostlySwift/WorkerTask.swift: Copied from PerformanceTests/APIBench/RichardsMostlySwift/RichardsMostlySwift/WorkerTask.swift.
* APIBench/CurrentAPI/RichardsMostlySwift/RichardsMostlySwift/main.swift: Copied from PerformanceTests/APIBench/RichardsMostlySwift/RichardsMostlySwift/main.swift.
* APIBench/CurrentAPI/RichardsMostlySwift/RichardsMostlySwift/richards.js: Copied from PerformanceTests/APIBench/RichardsMostlySwift/RichardsMostlySwift/richards.js.
* APIBench/CurrentAPI/RichardsMostlySwift/RichardsMostlySwift/richards.swift: Copied from PerformanceTests/APIBench/RichardsMostlySwift/RichardsMostlySwift/richards.swift.
* APIBench/CurrentAPI/RichardsSomeC/RichardsSomeC.xcodeproj/project.pbxproj: Copied from PerformanceTests/APIBench/RichardsMostlyJS/RichardsMostlyJS.xcodeproj/project.pbxproj.
* APIBench/CurrentAPI/RichardsSomeC/RichardsSomeC/main.m: Added.
(WorkerTask_run):
(WorkerTask_constructor):
(WorkerTask_getProperty):
(main):
* APIBench/CurrentAPI/RichardsSomeC/RichardsSomeC/richards.js: Copied from PerformanceTests/APIBench/RichardsMostlyJS/RichardsMostlyJS/richards.js.
* APIBench/CurrentAPI/RichardsSomeObjC/RichardsSomeObjC.xcodeproj/project.pbxproj: Copied from PerformanceTests/APIBench/RichardsMostlyJS/RichardsMostlyJS.xcodeproj/project.pbxproj.
* APIBench/CurrentAPI/RichardsSomeObjC/RichardsSomeObjC.xcodeproj/xcshareddata/xcschemes/RichardsSomeObjC.xcscheme: Copied from PerformanceTests/APIBench/RichardsMostlyJS/RichardsMostlyJS.xcodeproj/xcshareddata/xcschemes/RichardsMostlyJS.xcscheme.
* APIBench/CurrentAPI/RichardsSomeObjC/RichardsSomeObjC/main.m: Added.
(-[WorkerTask initWithScheduler:v1:v2:]):
(-[WorkerTask toString]):
(-[WorkerTask run:]):
(main):
* APIBench/CurrentAPI/RichardsSomeObjC/RichardsSomeObjC/richards.js: Copied from PerformanceTests/APIBench/RichardsMostlyJS/RichardsMostlyJS/richards.js.
(runRichards):
(Scheduler):
(Scheduler.prototype.addIdleTask):
(Scheduler.prototype.addWorkerTask):
(Scheduler.prototype.addHandlerTask):
(Scheduler.prototype.addDeviceTask):
(Scheduler.prototype.addRunningTask):
(Scheduler.prototype.addTask):
(Scheduler.prototype.schedule):
(Scheduler.prototype.release):
(Scheduler.prototype.holdCurrent):
(Scheduler.prototype.suspendCurrent):
(Scheduler.prototype.queue):
(TaskControlBlock):
(TaskControlBlock.prototype.setRunning):
(TaskControlBlock.prototype.markAsNotHeld):
(TaskControlBlock.prototype.markAsHeld):
(TaskControlBlock.prototype.isHeldOrSuspended):
(TaskControlBlock.prototype.markAsSuspended):
(TaskControlBlock.prototype.markAsRunnable):
(TaskControlBlock.prototype.run):
(TaskControlBlock.prototype.checkPriorityAdd):
(TaskControlBlock.prototype.toString):
(IdleTask):
(IdleTask.prototype.run):
(IdleTask.prototype.toString):
(DeviceTask):
(DeviceTask.prototype.run):
(DeviceTask.prototype.toString):
(HandlerTask):
(HandlerTask.prototype.run):
(HandlerTask.prototype.toString):
(Packet):
(Packet.prototype.addTo):
(Packet.prototype.toString):
* APIBench/CurrentAPI/RichardsSomeSwift/RichardsSomeSwift.xcodeproj/project.pbxproj: Copied from PerformanceTests/APIBench/RichardsMostlyJS/RichardsMostlyJS.xcodeproj/project.pbxproj.
* APIBench/CurrentAPI/RichardsSomeSwift/RichardsSomeSwift.xcodeproj/xcshareddata/xcschemes/RichardsSomeSwift.xcscheme: Copied from PerformanceTests/APIBench/RichardsMostlyJS/RichardsMostlyJS.xcodeproj/xcshareddata/xcschemes/RichardsMostlyJS.xcscheme.
* APIBench/CurrentAPI/RichardsSomeSwift/RichardsSomeSwift/main.swift: Copied from PerformanceTests/APIBench/RichardsMostlyJS/RichardsMostlyJS/main.swift.
* APIBench/CurrentAPI/RichardsSomeSwift/RichardsSomeSwift/richards.js: Copied from PerformanceTests/APIBench/RichardsMostlyJS/RichardsMostlyJS/richards.js.
(runRichards):
(Scheduler):
(Scheduler.prototype.addIdleTask):
(Scheduler.prototype.addWorkerTask):
(Scheduler.prototype.addHandlerTask):
(Scheduler.prototype.addDeviceTask):
(Scheduler.prototype.addRunningTask):
(Scheduler.prototype.addTask):
(Scheduler.prototype.schedule):
(Scheduler.prototype.release):
(Scheduler.prototype.holdCurrent):
(Scheduler.prototype.suspendCurrent):
(Scheduler.prototype.queue):
(TaskControlBlock):
(TaskControlBlock.prototype.setRunning):
(TaskControlBlock.prototype.markAsNotHeld):
(TaskControlBlock.prototype.markAsHeld):
(TaskControlBlock.prototype.isHeldOrSuspended):
(TaskControlBlock.prototype.markAsSuspended):
(TaskControlBlock.prototype.markAsRunnable):
(TaskControlBlock.prototype.run):
(TaskControlBlock.prototype.checkPriorityAdd):
(TaskControlBlock.prototype.toString):
(IdleTask):
(IdleTask.prototype.run):
(IdleTask.prototype.toString):
(DeviceTask):
(DeviceTask.prototype.run):
(DeviceTask.prototype.toString):
(HandlerTask):
(HandlerTask.prototype.run):
(HandlerTask.prototype.toString):
(Packet):
(Packet.prototype.addTo):
(Packet.prototype.toString):
* APIBench/References/RichardsC/RichardsC.xcodeproj/project.pbxproj: Copied from PerformanceTests/APIBench/RichardsMostlyJS/RichardsMostlyJS.xcodeproj/project.pbxproj.
* APIBench/References/RichardsC/RichardsC.xcodeproj/xcshareddata/xcschemes/RichardsC.xcscheme: Copied from PerformanceTests/APIBench/RichardsSwift/RichardsSwift.xcodeproj/xcshareddata/xcschemes/RichardsSwift.xcscheme.
* APIBench/References/RichardsC/RichardsC/richards.c: Added.
(pkt):
(trace):
(schedule):
(wait_):
(holdself):
(findtcb):
(release):
(qpkt):
(idlefn):
(workfn):
(handlerfn):
(devfn):
(append):
(setup):
(getQpktcount):
(getHoldcount):
(main):
* APIBench/References/RichardsC/RichardsC/richards.js: Copied from PerformanceTests/APIBench/RichardsSwift/RichardsSwift/main.swift.
(createWorkfn):
* APIBench/References/RichardsJS/RichardsJS.js: Renamed from PerformanceTests/APIBench/RichardsJS/RichardsJS.js.
* APIBench/References/RichardsObjC/RichardsObjC.xcodeproj/project.pbxproj: Copied from PerformanceTests/APIBench/RichardsMostlySwift/RichardsMostlySwift.xcodeproj/project.pbxproj.
* APIBench/References/RichardsObjC/RichardsObjC.xcodeproj/xcshareddata/xcschemes/RichardsObjC.xcscheme: Copied from PerformanceTests/APIBench/RichardsSwift/RichardsSwift.xcodeproj/xcshareddata/xcschemes/RichardsSwift.xcscheme.
* APIBench/References/RichardsObjC/RichardsObjC/Device.h: Copied from PerformanceTests/APIBench/RichardsSwift/RichardsSwift/main.swift.
* APIBench/References/RichardsObjC/RichardsObjC/DeviceTask.h: Copied from PerformanceTests/APIBench/RichardsSwift/RichardsSwift/main.swift.
* APIBench/References/RichardsObjC/RichardsObjC/DeviceTask.m: Copied from PerformanceTests/APIBench/RichardsSwift/RichardsSwift/main.swift.
(+[DeviceTask createWithScheduler:device:priority:]):
(-[DeviceTask run:]):
* APIBench/References/RichardsObjC/RichardsObjC/HandlerTask.h: Copied from PerformanceTests/APIBench/RichardsSwift/RichardsSwift/main.swift.
* APIBench/References/RichardsObjC/RichardsObjC/HandlerTask.m: Copied from PerformanceTests/APIBench/RichardsMostlySwift/RichardsMostlySwift/DeviceTask.swift.
(+[HandlerTask createWithScheduler:device:priority:queue:]):
(-[HandlerTask run:]):
* APIBench/References/RichardsObjC/RichardsObjC/IdleTask.h: Copied from PerformanceTests/APIBench/RichardsSwift/RichardsSwift/main.swift.
* APIBench/References/RichardsObjC/RichardsObjC/IdleTask.m: Copied from PerformanceTests/APIBench/RichardsSwift/RichardsSwift/main.swift.
(+[IdleTask createWithScheduler:priority:]):
(-[IdleTask run:]):
* APIBench/References/RichardsObjC/RichardsObjC/Packet.h: Copied from PerformanceTests/APIBench/RichardsSwift/RichardsSwift/Packet.swift.
* APIBench/References/RichardsObjC/RichardsObjC/Packet.m: Copied from PerformanceTests/APIBench/RichardsSwift/RichardsSwift/IdleTask.swift.
(+[Packet create:withLink:]):
(-[Packet addToQueue:]):
(+[DevicePacket create:withLink:]):
(+[WorkPacket createWithLink:]):
(+[WorkPacket size]):
* APIBench/References/RichardsObjC/RichardsObjC/Scheduler.h: Added.
* APIBench/References/RichardsObjC/RichardsObjC/Scheduler.m: Added.
(-[Scheduler schedule]):
(-[Scheduler addTask:]):
(-[Scheduler releaseDevice:]):
(-[Scheduler holdCurrent]):
(-[Scheduler waitCurrent]):
(-[Scheduler queue:]):
(-[Scheduler handle:]):
(-[Scheduler _queueImpl:packet:]):
(-[Scheduler _find:]):
* APIBench/References/RichardsObjC/RichardsObjC/Task.h: Copied from PerformanceTests/APIBench/RichardsMostlySwift/RichardsMostlySwift/DeviceTask.swift.
* APIBench/References/RichardsObjC/RichardsObjC/Task.m: Added.
(+[Task createWithScheduler:priority:queue:]):
(-[Task run:]):
(-[Task release_]):
(-[Task hold]):
(-[Task wait]):
(-[Task resume]):
(-[Task takePacket]):
(-[Task checkPriorityAdd:packet:]):
* APIBench/References/RichardsObjC/RichardsObjC/WorkerTask.h: Copied from PerformanceTests/APIBench/RichardsSwift/RichardsSwift/main.swift.
* APIBench/References/RichardsObjC/RichardsObjC/WorkerTask.m: Copied from PerformanceTests/APIBench/RichardsSwift/RichardsSwift/main.swift.
(+[WorkerTask createWithScheduler:priority:queue:]):
(-[WorkerTask run:]):
* APIBench/References/RichardsObjC/RichardsObjC/main.m: Added.
(runRichards):
(main):
* APIBench/References/RichardsObjC/RichardsObjC/richards.m: Copied from PerformanceTests/APIBench/RichardsSwift/RichardsSwift/main.swift.
* APIBench/References/RichardsSwift/RichardsSwift.xcodeproj/project.pbxproj: Renamed from PerformanceTests/APIBench/RichardsSwift/RichardsSwift.xcodeproj/project.pbxproj.
* APIBench/References/RichardsSwift/RichardsSwift.xcodeproj/xcshareddata/xcschemes/RichardsSwift.xcscheme: Copied from PerformanceTests/APIBench/RichardsSwift/RichardsSwift.xcodeproj/xcshareddata/xcschemes/RichardsSwift.xcscheme.
* APIBench/References/RichardsSwift/RichardsSwift/DeviceTask.swift: Renamed from PerformanceTests/APIBench/RichardsSwift/RichardsSwift/DeviceTask.swift.
* APIBench/References/RichardsSwift/RichardsSwift/HandlerTask.swift: Renamed from PerformanceTests/APIBench/RichardsSwift/RichardsSwift/HandlerTask.swift.
* APIBench/References/RichardsSwift/RichardsSwift/IdleTask.swift: Copied from PerformanceTests/APIBench/RichardsSwift/RichardsSwift/IdleTask.swift.
* APIBench/References/RichardsSwift/RichardsSwift/Packet.swift: Copied from PerformanceTests/APIBench/RichardsSwift/RichardsSwift/Packet.swift.
* APIBench/References/RichardsSwift/RichardsSwift/Scheduler.swift: Renamed from PerformanceTests/APIBench/RichardsSwift/RichardsSwift/Scheduler.swift.
* APIBench/References/RichardsSwift/RichardsSwift/Task.swift: Renamed from PerformanceTests/APIBench/RichardsSwift/RichardsSwift/Task.swift.
* APIBench/References/RichardsSwift/RichardsSwift/WorkerTask.swift: Renamed from PerformanceTests/APIBench/RichardsSwift/RichardsSwift/WorkerTask.swift.
* APIBench/References/RichardsSwift/RichardsSwift/main.swift: Copied from PerformanceTests/APIBench/RichardsSwift/RichardsSwift/main.swift.
* APIBench/References/RichardsSwift/RichardsSwift/richards.swift: Renamed from PerformanceTests/APIBench/RichardsSwift/RichardsSwift/richards.swift.
* APIBench/UpcomingAPI/RichardsMostlyC/RichardsMostlyC.xcodeproj/project.pbxproj: Copied from PerformanceTests/APIBench/RichardsMostlyJS/RichardsMostlyJS.xcodeproj/project.pbxproj.
* APIBench/UpcomingAPI/RichardsMostlyC/RichardsMostlyC.xcodeproj/xcshareddata/xcschemes/RichardsMostlyC.xcscheme: Copied from PerformanceTests/APIBench/RichardsSwift/RichardsSwift.xcodeproj/xcshareddata/xcschemes/RichardsSwift.xcscheme.
* APIBench/UpcomingAPI/RichardsMostlyC/RichardsMostlyC/richards.c: Added.
(pkt):
(trace):
(schedule):
(wait_):
(holdself):
(findtcb):
(release):
(qpkt):
(idlefn):
(valueToTask):
(waitWrapper):
(qpktWrapper):
(readFile):
(workfn):
(handlerfn):
(devfn):
(append):
(setup):
(getQpktcount):
(getHoldcount):
(main):
* APIBench/UpcomingAPI/RichardsMostlyC/RichardsMostlyC/richards.js: Copied from PerformanceTests/APIBench/RichardsSwift/RichardsSwift/main.swift.
(createWorkfn):
* APIBench/UpcomingAPI/RichardsMostlyObjC/RichardsMostlyObjC.xcodeproj/project.pbxproj: Copied from PerformanceTests/APIBench/RichardsMostlySwift/RichardsMostlySwift.xcodeproj/project.pbxproj.
* APIBench/UpcomingAPI/RichardsMostlyObjC/RichardsMostlyObjC.xcodeproj/xcshareddata/xcschemes/RichardsMostlySwift.xcscheme: Renamed from PerformanceTests/APIBench/RichardsSwift/RichardsSwift.xcodeproj/xcshareddata/xcschemes/RichardsSwift.xcscheme.
* APIBench/UpcomingAPI/RichardsMostlyObjC/RichardsMostlyObjC/Device.h: Copied from PerformanceTests/APIBench/RichardsSwift/RichardsSwift/main.swift.
* APIBench/UpcomingAPI/RichardsMostlyObjC/RichardsMostlyObjC/DeviceTask.h: Copied from PerformanceTests/APIBench/RichardsSwift/RichardsSwift/main.swift.
* APIBench/UpcomingAPI/RichardsMostlyObjC/RichardsMostlyObjC/DeviceTask.m: Copied from PerformanceTests/APIBench/RichardsSwift/RichardsSwift/main.swift.
(+[DeviceTask createWithScheduler:device:priority:]):
(-[DeviceTask run:]):
* APIBench/UpcomingAPI/RichardsMostlyObjC/RichardsMostlyObjC/HandlerTask.h: Copied from PerformanceTests/APIBench/RichardsSwift/RichardsSwift/main.swift.
* APIBench/UpcomingAPI/RichardsMostlyObjC/RichardsMostlyObjC/HandlerTask.m: Copied from PerformanceTests/APIBench/RichardsMostlySwift/RichardsMostlySwift/DeviceTask.swift.
(+[HandlerTask createWithScheduler:device:priority:queue:]):
(-[HandlerTask run:]):
* APIBench/UpcomingAPI/RichardsMostlyObjC/RichardsMostlyObjC/IdleTask.h: Copied from PerformanceTests/APIBench/RichardsSwift/RichardsSwift/main.swift.
* APIBench/UpcomingAPI/RichardsMostlyObjC/RichardsMostlyObjC/IdleTask.m: Copied from PerformanceTests/APIBench/RichardsSwift/RichardsSwift/main.swift.
(+[IdleTask createWithScheduler:priority:]):
(-[IdleTask run:]):
* APIBench/UpcomingAPI/RichardsMostlyObjC/RichardsMostlyObjC/Packet.h: Renamed from PerformanceTests/APIBench/RichardsSwift/RichardsSwift/Packet.swift.
* APIBench/UpcomingAPI/RichardsMostlyObjC/RichardsMostlyObjC/Packet.m: Renamed from PerformanceTests/APIBench/RichardsSwift/RichardsSwift/IdleTask.swift.
(+[Packet create:withLink:]):
(-[Packet addToQueue:]):
(+[DevicePacket create:withLink:]):
(+[WorkPacket createWithLink:]):
(+[WorkPacket size]):
* APIBench/UpcomingAPI/RichardsMostlyObjC/RichardsMostlyObjC/Scheduler.h: Added.
* APIBench/UpcomingAPI/RichardsMostlyObjC/RichardsMostlyObjC/Scheduler.m: Added.
(-[Scheduler schedule]):
(-[Scheduler addTask:]):
(-[Scheduler releaseDevice:]):
(-[Scheduler holdCurrent]):
(-[Scheduler waitCurrent]):
(-[Scheduler queue:]):
(-[Scheduler handle:]):
(-[Scheduler _queueImpl:packet:]):
(-[Scheduler _find:]):
* APIBench/UpcomingAPI/RichardsMostlyObjC/RichardsMostlyObjC/Task.h: Copied from PerformanceTests/APIBench/RichardsMostlySwift/RichardsMostlySwift/DeviceTask.swift.
* APIBench/UpcomingAPI/RichardsMostlyObjC/RichardsMostlyObjC/Task.m: Added.
(+[Task createWithScheduler:priority:queue:]):
(-[Task run:]):
(-[Task release_]):
(-[Task hold]):
(-[Task wait]):
(-[Task resume]):
(-[Task takePacket]):
(-[Task checkPriorityAdd:packet:]):
* APIBench/UpcomingAPI/RichardsMostlyObjC/RichardsMostlyObjC/WorkerTask.h: Copied from PerformanceTests/APIBench/RichardsSwift/RichardsSwift/main.swift.
* APIBench/UpcomingAPI/RichardsMostlyObjC/RichardsMostlyObjC/WorkerTask.m: Added.
(+[WorkerTask createWithScheduler:priority:queue:]):
(+[WorkerTask context]):
(+[WorkerTask constructor]):
(-[WorkerTask run:]):
* APIBench/UpcomingAPI/RichardsMostlyObjC/RichardsMostlyObjC/main.m: Added.
(runRichards):
(main):
* APIBench/UpcomingAPI/RichardsMostlyObjC/RichardsMostlyObjC/richards.js: Copied from PerformanceTests/APIBench/RichardsMostlySwift/RichardsMostlySwift/richards.js.
(return.prototype.run):
* APIBench/UpcomingAPI/RichardsMostlyObjC/RichardsMostlyObjC/richards.m: Renamed from PerformanceTests/APIBench/RichardsSwift/RichardsSwift/main.swift.
* APIBench/UpcomingAPI/RichardsMostlySwift/RichardsMostlySwift.xcodeproj/project.pbxproj: Renamed from PerformanceTests/APIBench/RichardsMostlySwift/RichardsMostlySwift.xcodeproj/project.pbxproj.
* APIBench/UpcomingAPI/RichardsMostlySwift/RichardsMostlySwift.xcodeproj/xcshareddata/xcschemes/RichardsMostlySwift.xcscheme: Renamed from PerformanceTests/APIBench/RichardsMostlySwift/RichardsMostlySwift.xcodeproj/xcshareddata/xcschemes/RichardsMostlySwift.xcscheme.
* APIBench/UpcomingAPI/RichardsMostlySwift/RichardsMostlySwift/DeviceTask.swift: Renamed from PerformanceTests/APIBench/RichardsMostlySwift/RichardsMostlySwift/DeviceTask.swift.
(DeviceTask.create(_:device:priority:)):
(DeviceTask.run(_:)):
* APIBench/UpcomingAPI/RichardsMostlySwift/RichardsMostlySwift/HandlerTask.swift: Renamed from PerformanceTests/APIBench/RichardsMostlySwift/RichardsMostlySwift/HandlerTask.swift.
(HandlerTask.device):
(HandlerTask.create(_:device:priority:queue:)):
(HandlerTask.run(_:)):
* APIBench/UpcomingAPI/RichardsMostlySwift/RichardsMostlySwift/IdleTask.swift: Renamed from PerformanceTests/APIBench/RichardsMostlySwift/RichardsMostlySwift/IdleTask.swift.
(IdleTask.create(_:priority:)):
(IdleTask.run(_:)):
* APIBench/UpcomingAPI/RichardsMostlySwift/RichardsMostlySwift/Packet.swift: Renamed from PerformanceTests/APIBench/RichardsMostlySwift/RichardsMostlySwift/Packet.swift.
(Packet.addTo(_:)):
* APIBench/UpcomingAPI/RichardsMostlySwift/RichardsMostlySwift/Scheduler.swift: Renamed from PerformanceTests/APIBench/RichardsMostlySwift/RichardsMostlySwift/Scheduler.swift.
(waitCurrent):
(handle(_:)):
(Scheduler.schedule):
(Scheduler.add(_:)):
(Scheduler.release_(_:)):
(holdCurrent):
(queue(_:)):
(queueImpl(_:packet:)):
* APIBench/UpcomingAPI/RichardsMostlySwift/RichardsMostlySwift/Task.swift: Renamed from PerformanceTests/APIBench/RichardsMostlySwift/RichardsMostlySwift/Task.swift.
(Task.run(_:)):
(Task.release_):
(Task.hold):
(Task.wait):
(Task.resume):
(Task.takePacket):
(Task.checkPriorityAdd(_:packet:)):
* APIBench/UpcomingAPI/RichardsMostlySwift/RichardsMostlySwift/WorkerTask.swift: Renamed from PerformanceTests/APIBench/RichardsMostlySwift/RichardsMostlySwift/WorkerTask.swift.
(WorkerTask.create(_:priority:queue:)):
(WorkerTask.run(_:)):
* APIBench/UpcomingAPI/RichardsMostlySwift/RichardsMostlySwift/main.swift: Renamed from PerformanceTests/APIBench/RichardsMostlySwift/RichardsMostlySwift/main.swift.
* APIBench/UpcomingAPI/RichardsMostlySwift/RichardsMostlySwift/richards.js: Renamed from PerformanceTests/APIBench/RichardsMostlySwift/RichardsMostlySwift/richards.js.
(return.prototype.run):
* APIBench/UpcomingAPI/RichardsMostlySwift/RichardsMostlySwift/richards.swift: Renamed from PerformanceTests/APIBench/RichardsMostlySwift/RichardsMostlySwift/richards.swift.
(runRichards):
* APIBench/UpcomingAPI/RichardsSomeC/RichardsSomeC.xcodeproj/project.pbxproj: Copied from PerformanceTests/APIBench/RichardsMostlyJS/RichardsMostlyJS.xcodeproj/project.pbxproj.
* APIBench/UpcomingAPI/RichardsSomeC/RichardsSomeC/main.m: Added.
(WorkerTask_run):
(WorkerTask_constructor):
(WorkerTask_getProperty):
(main):
* APIBench/UpcomingAPI/RichardsSomeC/RichardsSomeC/richards.js: Copied from PerformanceTests/APIBench/RichardsMostlyJS/RichardsMostlyJS/richards.js.
(runRichards):
(Scheduler):
(Scheduler.prototype.addIdleTask):
(Scheduler.prototype.addWorkerTask):
(Scheduler.prototype.addHandlerTask):
(Scheduler.prototype.addDeviceTask):
(Scheduler.prototype.addRunningTask):
(Scheduler.prototype.addTask):
(Scheduler.prototype.schedule):
(Scheduler.prototype.release):
(Scheduler.prototype.holdCurrent):
(Scheduler.prototype.suspendCurrent):
(Scheduler.prototype.queue):
(TaskControlBlock):
(TaskControlBlock.prototype.setRunning):
(TaskControlBlock.prototype.markAsNotHeld):
(TaskControlBlock.prototype.markAsHeld):
(TaskControlBlock.prototype.isHeldOrSuspended):
(TaskControlBlock.prototype.markAsSuspended):
(TaskControlBlock.prototype.markAsRunnable):
(TaskControlBlock.prototype.run):
(TaskControlBlock.prototype.checkPriorityAdd):
(TaskControlBlock.prototype.toString):
(IdleTask):
(IdleTask.prototype.run):
(IdleTask.prototype.toString):
(DeviceTask):
(DeviceTask.prototype.run):
(DeviceTask.prototype.toString):
(HandlerTask):
(HandlerTask.prototype.run):
(HandlerTask.prototype.toString):
(Packet):
(Packet.prototype.addTo):
(Packet.prototype.toString):
* APIBench/UpcomingAPI/RichardsSomeObjC/RichardsSomeObjC.xcodeproj/project.pbxproj: Copied from PerformanceTests/APIBench/RichardsMostlyJS/RichardsMostlyJS.xcodeproj/project.pbxproj.
* APIBench/UpcomingAPI/RichardsSomeObjC/RichardsSomeObjC.xcodeproj/xcshareddata/xcschemes/RichardsSomeObjC.xcscheme: Copied from PerformanceTests/APIBench/RichardsMostlyJS/RichardsMostlyJS.xcodeproj/xcshareddata/xcschemes/RichardsMostlyJS.xcscheme.
* APIBench/UpcomingAPI/RichardsSomeObjC/RichardsSomeObjC/main.m: Added.
(-[WorkerTask initWithScheduler:v1:v2:]):
(-[WorkerTask toString]):
(-[WorkerTask run:]):
(main):
* APIBench/UpcomingAPI/RichardsSomeObjC/RichardsSomeObjC/richards.js: Copied from PerformanceTests/APIBench/RichardsMostlyJS/RichardsMostlyJS/richards.js.
(runRichards):
(Scheduler):
(Scheduler.prototype.addIdleTask):
(Scheduler.prototype.addWorkerTask):
(Scheduler.prototype.addHandlerTask):
(Scheduler.prototype.addDeviceTask):
(Scheduler.prototype.addRunningTask):
(Scheduler.prototype.addTask):
(Scheduler.prototype.schedule):
(Scheduler.prototype.release):
(Scheduler.prototype.holdCurrent):
(Scheduler.prototype.suspendCurrent):
(Scheduler.prototype.queue):
(TaskControlBlock):
(TaskControlBlock.prototype.setRunning):
(TaskControlBlock.prototype.markAsNotHeld):
(TaskControlBlock.prototype.markAsHeld):
(TaskControlBlock.prototype.isHeldOrSuspended):
(TaskControlBlock.prototype.markAsSuspended):
(TaskControlBlock.prototype.markAsRunnable):
(TaskControlBlock.prototype.run):
(TaskControlBlock.prototype.checkPriorityAdd):
(TaskControlBlock.prototype.toString):
(IdleTask):
(IdleTask.prototype.run):
(IdleTask.prototype.toString):
(DeviceTask):
(DeviceTask.prototype.run):
(DeviceTask.prototype.toString):
(HandlerTask):
(HandlerTask.prototype.run):
(HandlerTask.prototype.toString):
(Packet):
(Packet.prototype.addTo):
(Packet.prototype.toString):
* APIBench/UpcomingAPI/RichardsSomeSwift/RichardsSomeSwift.xcodeproj/project.pbxproj: Renamed from PerformanceTests/APIBench/RichardsMostlyJS/RichardsMostlyJS.xcodeproj/project.pbxproj.
* APIBench/UpcomingAPI/RichardsSomeSwift/RichardsSomeSwift.xcodeproj/xcshareddata/xcschemes/RichardsSomeSwift.xcscheme: Renamed from PerformanceTests/APIBench/RichardsMostlyJS/RichardsMostlyJS.xcodeproj/xcshareddata/xcschemes/RichardsMostlyJS.xcscheme.
* APIBench/UpcomingAPI/RichardsSomeSwift/RichardsSomeSwift/main.swift: Renamed from PerformanceTests/APIBench/RichardsMostlyJS/RichardsMostlyJS/main.swift.
(run(_:)):
(toString):
(WorkerTask.toString):
(WorkerTask.run(_:)):
* APIBench/UpcomingAPI/RichardsSomeSwift/RichardsSomeSwift/richards.js: Renamed from PerformanceTests/APIBench/RichardsMostlyJS/RichardsMostlyJS/richards.js.
(runRichards):
(Scheduler):
(Scheduler.prototype.addIdleTask):
(Scheduler.prototype.addWorkerTask):
(Scheduler.prototype.addHandlerTask):
(Scheduler.prototype.addDeviceTask):
(Scheduler.prototype.addRunningTask):
(Scheduler.prototype.addTask):
(Scheduler.prototype.schedule):
(Scheduler.prototype.release):
(Scheduler.prototype.holdCurrent):
(Scheduler.prototype.suspendCurrent):
(Scheduler.prototype.queue):
(TaskControlBlock):
(TaskControlBlock.prototype.setRunning):
(TaskControlBlock.prototype.markAsNotHeld):
(TaskControlBlock.prototype.markAsHeld):
(TaskControlBlock.prototype.isHeldOrSuspended):
(TaskControlBlock.prototype.markAsSuspended):
(TaskControlBlock.prototype.markAsRunnable):
(TaskControlBlock.prototype.run):
(TaskControlBlock.prototype.checkPriorityAdd):
(TaskControlBlock.prototype.toString):
(IdleTask):
(IdleTask.prototype.run):
(IdleTask.prototype.toString):
(DeviceTask):
(DeviceTask.prototype.run):
(DeviceTask.prototype.toString):
(HandlerTask):
(HandlerTask.prototype.run):
(HandlerTask.prototype.toString):
(Packet):
(Packet.prototype.addTo):
(Packet.prototype.toString):
* APIBench/api-bench:
2020-10-27 Jer Noble <jer.noble@apple.com>
[Mac] Audio and Video element creation up to 300x slower than other browsers
https://bugs.webkit.org/show_bug.cgi?id=218206
<rdar://problem/62451019>
Reviewed by Eric Carlson.
* Media/AudioElementCreation.html: Added.
* Media/VideoElementCreation.html: Added.
2020-10-27 Caio Lima <ticaiolima@gmail.com>
Make WebAssembly tests on JetStream 2 be feature detactable
https://bugs.webkit.org/show_bug.cgi?id=218198
Reviewed by Saam Barati.
This patch is disabling JetStream 2's WASM tests when it's not
possible to find WebAssembly constructor on global object. This allows
us to run JetStream 2 on devices without WASM support, like 32-bits
ports of WebKit.
* JetStream2/JetStreamDriver.js:
2020-10-13 Keith Rollin <krollin@apple.com>
Remove leftover MACOSX_DEPLOYMENT_TARGET_macosx support
https://bugs.webkit.org/show_bug.cgi?id=217649
<rdar://problem/70236877>
Reviewed by Darin Adler.
Bug 42796 introduced MACOSX_DEPLOYMENT_TARGET_<PLATFORM> as "support
for compiling WebKit against iOS SDKs". Support for the iOS part of
this feature was later removed in several changes, including Bug
139212, Bug 139463 and Bug 144762. However, vestiges have remained for
five or six years in the form of MACOSX_DEPLOYMENT_TARGET_macosx. The
inclusion of the platform in MACOSX_DEPLOYMENT_TARGET is no longer
needed and can be removed.
This changes brings most projects in conformance with other projects
that don't support including the platform in MACOSX_DEPLOYMENT_TARGET,
including WebEditingTester, gtest, WebKitTestRunner, MiniBrowser, and
TestWebKitAPI.
Along the way, remove a couple of left-over references to macOS 10.16,
and a couple of places where [sdk=macosx*] was still being used.
With this change, initialization of MACOSX_DEPLOYMENT_TARGET should be
consistent across all projects, with two exceptions: WebKitLauncher
(which hardcodes it to 10.12) and libwebrtc's copy of googletest
(which hardcodes it to 10.4). The reasons for these hard-coded values
is not apparent, so leave them be.
* DecoderTest/Configurations/DebugRelease.xcconfig:
* MediaTime/Configurations/DebugRelease.xcconfig:
2020-10-12 Luming Yin <luming_yin@apple.com>
[macOS] Workaround for MAC_OS_X_VERSION_MAJOR incorrectly including minor version when building
with Xcode 12 on macOS Big Sur SUs
https://bugs.webkit.org/show_bug.cgi?id=217602
rdar://70194453
Reviewed by Darin Adler.
The previous workaround turns out to be ineffective because we can't set the value of
TARGET_MAC_OS_X_VERSION_MAJOR based on a previous value of itself. Introduce a new
variable TARGET_MAC_OS_X_VERSION_MAJOR to determine whether we need to explicitly
adjust MAC_OS_X_VERSION_MAJOR to 110000.
* DecoderTest/Configurations/DebugRelease.xcconfig:
* MediaTime/Configurations/DebugRelease.xcconfig:
2020-10-12 Luming Yin <luming_yin@apple.com>
[macOS] Workaround for MAC_OS_X_VERSION_MAJOR incorrectly including minor version when building
with Xcode 12 on macOS Big Sur SUs
https://bugs.webkit.org/show_bug.cgi?id=217602
rdar://70194453
Reviewed by Darin Adler.
Due to a bug in Xcode (rdar://70185899), Xcode 12.0 and Xcode 12.1 Beta incorrectly includes the
minor release number in MAC_OS_X_VERSION_MAJOR, which causes Debug and Release builds of WebKit
to be misconfigured when building on macOS Big Sur SUs, leading to webpages failing to load.
To work around the Xcode bug, when the MAC_OS_X_VERSION_MAJOR includes the minor version number,
drop the minor version number by explicitly setting TARGET_MAC_OS_X_VERSION_MAJOR to 110000.
Note: This change should be reverted after <rdar://70185899> is resolved.
* DecoderTest/Configurations/DebugRelease.xcconfig:
* MediaTime/Configurations/DebugRelease.xcconfig:
2020-10-11 Darin Adler <darin@apple.com>
[macOS] Harden more build configurations against macOS versions 11 and higher as well as inclusion of patch versions
https://bugs.webkit.org/show_bug.cgi?id=217595
Reviewed by Alexey Proskuryakov.
* MediaTime/Configurations/Base.xcconfig: Updated to same idiom used elsewhere.
2020-07-30 Jer Noble <jer.noble@apple.com>
[Cocoa] Make DecoderTest run against .mp4 files; add rate-limiting.
https://bugs.webkit.org/show_bug.cgi?id=214807
Reviewed by Darin Adler.
Look up the UTI type of the specified file, and create the appropriate SourceBufferParser
by passing in the ContentType (converted from UTI). Also, add a --rate-limit flag which
causes the decompression session to run at the same FPS as the underlying media.
* DecoderTest/DecoderTest.xcodeproj/project.pbxproj:
* DecoderTest/DecoderTest/main.mm:
(main):
2020-07-24 Jer Noble <jer.noble@apple.com>
[Cocoa] Add PerformanceTest tool for measuring raw speed of a video decoder
https://bugs.webkit.org/show_bug.cgi?id=214723
Reviewed by Darin Adler.
* DecoderTest/Configurations/Base.xcconfig: Added.
* DecoderTest/Configurations/DebugRelease.xcconfig: Added.
* DecoderTest/Configurations/DecoderTest.xcconfig: Added.
* DecoderTest/DecoderTest.xcodeproj/project.pbxproj: Added.
* DecoderTest/DecoderTest/main.mm: Added.
(Function<void):
(main):
* DecoderTest/Makefile: Added.
* Makefile.shared: Added.
2020-07-22 Conrad Shultz <conrad_shultz@apple.com>
Update macOS Version macros
https://bugs.webkit.org/show_bug.cgi?id=214653
Reviewed by Tim Horton.
* MediaTime/Configurations/Base.xcconfig:
* MediaTime/Configurations/DebugRelease.xcconfig:
2020-07-06 Philippe Normand <pnormand@igalia.com>
MallocBench: Remove unused private field
https://bugs.webkit.org/show_bug.cgi?id=213989
Reviewed by Alex Christensen.
The m_argc private field is never used. Remove it.
* MallocBench/MallocBench/CommandLine.cpp:
* MallocBench/MallocBench/CommandLine.h:
2020-07-01 Saam Barati <sbarati@apple.com>
Make it so JetStream2 can run with the d8 shell
https://bugs.webkit.org/show_bug.cgi?id=213856
Reviewed by Keith Miller.
We use d8's Realm API to create separate global objects for
each test to run in.
* JetStream2/JetStreamDriver.js:
(Driver.prototype.runCode.globalObject.loadString):
(Driver.prototype.runCode):
(prototype.async run):
* JetStream2/cli.js:
* JetStream2/index.html:
2020-06-29 Tadeu Zagallo <tzagallo@apple.com>
New API benchmark
https://bugs.webkit.org/show_bug.cgi?id=213750
Reviewed by Saam Barati.
APIBench is a new benchmark suite to measure the performance of the JavaScriptCore API. It has 4 benchmarks:
- RichardsJS: This is imported from Octane and used as a reference so we know how fast the pure JS implementation runs.
- RichardsSwift: a Swift port of the benchmark, also used as reference for how fast the pure Swift implementation is.
- RichardsMostlyJS: As the name suggests, mostly the same the as the JS benchmark, but here the WorkerTask
is implemented in Swift. The API is used to write to the packet being processed and talking to the scheduler.
- RichardsMostlySwift: inverse of the above. Mostly the same code from the Swift benchark, but here the WorkerTask is
implemented in JavaScript. The API is used to run the JS version of the task and marshaling the Packet by using JSExport.
The benchmark can be built and run using the api-bench script, as following:
PerformanceTests/APIBench/api-bench WebKitBuild/Release
By default, it will build each of the benchmarks and run 5 iterations.
The score is calculated as 5000 / geomean([avg of RichardsMostlySwift, avg of RichardsMostlyJS]).
The script prints the average for the references and tests and the final score:
Results for /Volumes/Data/wk2/OpenSource/WebKitBuild/Release (5 iterations)
================================================================================
References:
----------------------------------------
RichardsJS: 14ms
RichardsSwift: 29ms
Tests:
----------------------------------------
RichardsMostlyJS: 218ms
RichardsMostlySwift: 315ms
Score: 19.0804
* APIBench/RichardsJS/RichardsJS.js: Added.
(runRichards):
(Scheduler):
(Scheduler.prototype.addIdleTask):
(Scheduler.prototype.addWorkerTask):
(Scheduler.prototype.addHandlerTask):
(Scheduler.prototype.addDeviceTask):
(Scheduler.prototype.addRunningTask):
(Scheduler.prototype.addTask):
(Scheduler.prototype.schedule):
(Scheduler.prototype.release):
(Scheduler.prototype.holdCurrent):
(Scheduler.prototype.suspendCurrent):
(Scheduler.prototype.queue):
(TaskControlBlock):
(TaskControlBlock.prototype.setRunning):
(TaskControlBlock.prototype.markAsNotHeld):
(TaskControlBlock.prototype.markAsHeld):
(TaskControlBlock.prototype.isHeldOrSuspended):
(TaskControlBlock.prototype.markAsSuspended):
(TaskControlBlock.prototype.markAsRunnable):
(TaskControlBlock.prototype.run):
(TaskControlBlock.prototype.checkPriorityAdd):
(TaskControlBlock.prototype.toString):
(IdleTask):
(IdleTask.prototype.run):
(IdleTask.prototype.toString):
(DeviceTask):
(DeviceTask.prototype.run):
(DeviceTask.prototype.toString):
(WorkerTask):
(WorkerTask.prototype.run):
(WorkerTask.prototype.toString):
(HandlerTask):
(HandlerTask.prototype.run):
(HandlerTask.prototype.toString):
(Packet):
(Packet.prototype.addTo):
(Packet.prototype.toString):
* APIBench/RichardsMostlyJS/RichardsMostlyJS.xcodeproj/project.pbxproj: Added.
* APIBench/RichardsMostlyJS/RichardsMostlyJS.xcodeproj/xcshareddata/xcschemes/RichardsMostlyJS.xcscheme: Added.
* APIBench/RichardsMostlyJS/RichardsMostlyJS/main.swift: Added.
(run(_:)):
(toString):
(WorkerTask.toString):
(WorkerTask.run(_:)):
* APIBench/RichardsMostlyJS/RichardsMostlyJS/richards.js: Added.
(runRichards):
(Scheduler):
(Scheduler.prototype.addIdleTask):
(Scheduler.prototype.addWorkerTask):
(Scheduler.prototype.addHandlerTask):
(Scheduler.prototype.addDeviceTask):
(Scheduler.prototype.addRunningTask):
(Scheduler.prototype.addTask):
(Scheduler.prototype.schedule):
(Scheduler.prototype.release):
(Scheduler.prototype.holdCurrent):
(Scheduler.prototype.suspendCurrent):
(Scheduler.prototype.queue):
(TaskControlBlock):
(TaskControlBlock.prototype.setRunning):
(TaskControlBlock.prototype.markAsNotHeld):
(TaskControlBlock.prototype.markAsHeld):
(TaskControlBlock.prototype.isHeldOrSuspended):
(TaskControlBlock.prototype.markAsSuspended):
(TaskControlBlock.prototype.markAsRunnable):
(TaskControlBlock.prototype.run):
(TaskControlBlock.prototype.checkPriorityAdd):
(TaskControlBlock.prototype.toString):
(IdleTask):
(IdleTask.prototype.run):
(IdleTask.prototype.toString):
(DeviceTask):
(DeviceTask.prototype.run):
(DeviceTask.prototype.toString):
(HandlerTask):
(HandlerTask.prototype.run):
(HandlerTask.prototype.toString):
(Packet):
(Packet.prototype.addTo):
(Packet.prototype.toString):
* APIBench/RichardsMostlySwift/RichardsMostlySwift.xcodeproj/project.pbxproj: Added.
* APIBench/RichardsMostlySwift/RichardsMostlySwift.xcodeproj/xcshareddata/xcschemes/RichardsMostlySwift.xcscheme: Added.
* APIBench/RichardsMostlySwift/RichardsMostlySwift/DeviceTask.swift: Added.
(DeviceTask.create(_:device:priority:)):
(DeviceTask.run(_:)):
* APIBench/RichardsMostlySwift/RichardsMostlySwift/HandlerTask.swift: Added.
(HandlerTask.device):
(HandlerTask.create(_:device:priority:queue:)):
(HandlerTask.run(_:)):
* APIBench/RichardsMostlySwift/RichardsMostlySwift/IdleTask.swift: Added.
(IdleTask.create(_:priority:)):
(IdleTask.run(_:)):
* APIBench/RichardsMostlySwift/RichardsMostlySwift/Packet.swift: Added.
(Packet.addTo(_:)):
* APIBench/RichardsMostlySwift/RichardsMostlySwift/Scheduler.swift: Added.
(waitCurrent):
(handle(_:)):
(Scheduler.schedule):
(Scheduler.add(_:)):
(Scheduler.release_(_:)):
(holdCurrent):
(queue(_:)):
(queueImpl(_:packet:)):
* APIBench/RichardsMostlySwift/RichardsMostlySwift/Task.swift: Added.
(Task.run(_:)):
(Task.release_):
(Task.hold):
(Task.wait):
(Task.resume):
(Task.takePacket):
(Task.checkPriorityAdd(_:packet:)):
* APIBench/RichardsMostlySwift/RichardsMostlySwift/WorkerTask.swift: Added.
(WorkerTask.create(_:priority:queue:)):
(WorkerTask.run(_:)):
* APIBench/RichardsMostlySwift/RichardsMostlySwift/main.swift: Added.
* APIBench/RichardsMostlySwift/RichardsMostlySwift/richards.js: Added.
(return.prototype.run):
* APIBench/RichardsMostlySwift/RichardsMostlySwift/richards.swift: Added.
(runRichards):
* APIBench/RichardsSwift/RichardsSwift.xcodeproj/project.pbxproj: Added.
* APIBench/RichardsSwift/RichardsSwift.xcodeproj/xcshareddata/xcschemes/RichardsSwift.xcscheme: Added.
* APIBench/RichardsSwift/RichardsSwift/DeviceTask.swift: Added.
(DeviceTask.create(_:device:priority:)):
(DeviceTask.run(_:)):
* APIBench/RichardsSwift/RichardsSwift/HandlerTask.swift: Added.
(HandlerTask.device):
(HandlerTask.create(_:device:priority:queue:)):
(HandlerTask.run(_:)):
* APIBench/RichardsSwift/RichardsSwift/IdleTask.swift: Added.
(IdleTask.create(_:priority:)):
(IdleTask.run(_:)):
* APIBench/RichardsSwift/RichardsSwift/Packet.swift: Added.
(Packet.addTo(_:)):
* APIBench/RichardsSwift/RichardsSwift/Scheduler.swift: Added.
(Scheduler.schedule):
(Scheduler.add(_:)):
(Scheduler.release(_:)):
(holdCurrent):
(waitCurrent):
(queue(_:)):
(handle(_:)):
(queueImpl(_:packet:)):
* APIBench/RichardsSwift/RichardsSwift/Task.swift: Added.
(Task.run(_:)):
(Task.release):
(Task.hold):
(Task.wait):
(Task.resume):
(Task.takePacket):
(Task.checkPriorityAdd(_:packet:)):
* APIBench/RichardsSwift/RichardsSwift/WorkerTask.swift: Added.
(WorkerTask.create(_:priority:queue:)):
(WorkerTask.run(_:)):
* APIBench/RichardsSwift/RichardsSwift/main.swift: Added.
* APIBench/RichardsSwift/RichardsSwift/richards.swift: Added.
(runRichards):
* APIBench/api-bench: Added.
2020-05-09 Don Olmstead <don.olmstead@sony.com>
[CMake] Use WEBKIT_EXECUTABLE in MallocBench
https://bugs.webkit.org/show_bug.cgi?id=211665
Reviewed by Yusuke Suzuki.
Cleanup MallocBench definitions using WEBKIT_EXECUTABLE. Notify developers
that MallocBench is unavailable only if bmalloc is being used but the platform
does not have the functionality required.
* CMakeLists.txt:
* MallocBench/MallocBench/CMakeLists.txt:
2020-05-08 Darin Adler <darin@apple.com>
Remove no-longer-used PerformanceTests/StitchMarker
https://bugs.webkit.org/show_bug.cgi?id=211639
Reviewed by Ryosuke Niwa.
Having this test around can be confusing since it contains old versions
of many WebKit source files, which will show up when searching the source
tree. And since we're not using it, we don't need to keep a copy of it
in the tip of tree in the repository.
* StitchMarker: Removed.
2020-04-24 Jon Lee <jonlee@apple.com>
MotionMark: add link to bug in about page
Unreviewed.
* MotionMark/about.html:
2020-04-24 Jon Lee <jonlee@apple.com>
MotionMark: ensure that timestamps are valid during warm up phase of tests
https://bugs.webkit.org/show_bug.cgi?id=210640
Reviewed by Said Abou-Hallawa.
Ensure that Benchmark._benchmarkStartTimestamp is set during warm up phase.
Otherwise it is NaN, which makes the Benchmark.timestamp invalid, which is
used by tests like Multiply to drive the animation. When the warm up phase
completes, the start timestamp is reset.
Update minor version of benchmark with this bug fix, and include
version changelog in the about page.
For testing, add a parameter that allows for adjusting the length of the
warm up phase. It remains at its current default, 100 ms.
* MotionMark/about.html: Add section of version changelog. Includes links
to webkit.org blog posts.
* MotionMark/developer.html: Add parameter for setting warmup length.
Remove the Kalman filter parameters, since they should always be fixed.
* MotionMark/resources/runner/motionmark.css: Include styles to show
version log.
* MotionMark/resources/runner/motionmark.js: Factor out default options to
a property on window.benchmarkController. Include the default warmup length
of 100 ms.
(window.benchmarkController.startBenchmark): Refactor to use benchmarkDefaultParameters.
* MotionMark/resources/debug-runner/motionmark.js: Ditto.
* MotionMark/resources/strings.js: Update version number.
* MotionMark/tests/resources/main.js:
(_animateLoop): Set _benchmarkTimestamp during the warmup phase. Check the
warmup length. The _benchmarkTimestamp variable remains reset when the test
begins.
2020-04-07 Saam Barati <sbarati@apple.com>
RAMification should have a way of gathering vmmaps for each test at the end of each run
https://bugs.webkit.org/show_bug.cgi?id=210060
Reviewed by Yusuke Suzuki.
When I was debugging a memory issue, I needed to gather vmmaps for each
RAMification subtest. This patch is checking in the code I wrote to be able
to do this. It works by:
- Passing in an argument to RAMification saying we want vmmaps at the end of
each subtest run.
- RAMification invokes jsc with an environment variable that tells the shell
to wait for one character of input from stdin before exiting.
- The jsc shell also disables the bmalloc scavenger while waiting for input so the
vmmap we take from the python runner script represents the "footprint" score
of the benchmark. If the scavenger ran, it would end up releasing too much
memory for the vmmap to be useful.
- The python script runs a vmmap, and then communicates to the jsc process
when the vmmap finishes running.
* JetStream2/RAMification.py:
(parseArgs):
(BaseRunner.__init__):
(BaseRunner.getResults):
(LocalRunner.runOneTest):
(main):
(main.runTestList):
2020-04-06 Saam Barati <sbarati@apple.com>
Implement 1GB of executable memory on arm64
https://bugs.webkit.org/show_bug.cgi?id=208490
<rdar://problem/60797127>
Reviewed by Keith Miller.
* JetStream2/JetStreamDriver.js:
(Driver.prototype.dumpJSONResultsIfNeeded):
(DefaultBenchmark.prototype.updateUIAfterRun):
(DefaultBenchmark):
(WSLBenchmark.prototype.updateUIAfterRun):
(WSLBenchmark):
(WasmBenchmark.prototype.updateUIAfterRun):
(WasmBenchmark):
(Driver.async fetchResources.statusElement.innerHTML.a.href.string_appeared_here):
(Driver.prototype.async fetchResources):
2020-03-26 Saam Barati <sbarati@apple.com>
Make it so RAMification can be run with python 3 and 2 and that it recognizes the new JavaScriptCore.framework directory structure
https://bugs.webkit.org/show_bug.cgi?id=209636
Reviewed by Yusuke Suzuki.
- JavaScriptCore builds now put the jsc shell under JavaScriptCore.framework/Helpers/jsc,
not JavaScriptCore.framework/Resources/jsc
- It's also helpful to be able to run RAMification with python3.7 and 2.7,
since there are some contexts where 3.7 is all we have.
* JetStream2/RAMification.py:
(frameworkPathFromExecutablePath):
(BaseRunner.processLine):
(LocalRunner.runOneTest):
(main.runTestList):
(main):
2020-03-15 Yusuke Suzuki <ysuzuki@apple.com>
Should not use variable-length-array (VLA)
https://bugs.webkit.org/show_bug.cgi?id=209043
Reviewed by Mark Lam.
* MediaTime/Configurations/Base.xcconfig:
2020-02-17 Don Olmstead <don.olmstead@sony.com>
[CMake] Use builtin targets
https://bugs.webkit.org/show_bug.cgi?id=205166
Reviewed by Darin Adler.
* MallocBench/MallocBench/CMakeLists.txt:
2020-01-28 Sihui Liu <sihui_liu@apple.com>
IndexedDB: speed up index records deletion
https://bugs.webkit.org/show_bug.cgi?id=206196
Reviewed by Brady Eidson.
* IndexedDB/basic/index-cursor-delete-2.html: Added.
2020-01-08 Sihui Liu <sihui_liu@apple.com>
REGRESSION (r242911?): High Sierra Release WK2 Perf bot timing out while running IndexedDB/large-number-of-inserts.html
https://bugs.webkit.org/show_bug.cgi?id=195952
<rdar://problem/49137688>
Re-enable the test after recent IDB performance improvement.
Reviewed by Alexey Proskuryakov.
* Skipped:
2020-01-07 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK][WPE] Add API to set purpose and hints of active editable element to input methods
https://bugs.webkit.org/show_bug.cgi?id=205605
Reviewed by Žan Doberšek.
Split ENABLE_IOS_AUTOCORRECT_AND_AUTOCAPITALIZE and remove the IOS prefix.
* StitchMarker/wtf/FeatureDefines.h:
2020-01-06 Mark Lam <mark.lam@apple.com>
Convert ASSERT_DISABLED to ASSERT_ENABLED, and fix some tests of NDEBUG that should actually test for ASSERT_ENABLED.
https://bugs.webkit.org/show_bug.cgi?id=205776
Reviewed by Saam Barati.
* JetStream2/wasm/HashSet.cpp:
* StitchMarker/wtf/Assertions.h:
* StitchMarker/wtf/DateMath.cpp:
(WTF::initializeDates):
* StitchMarker/wtf/HashTable.h:
* StitchMarker/wtf/Hasher.h:
(WTF::StringHasher::addCharacters):
* StitchMarker/wtf/NeverDestroyed.h:
(WTF::LazyNeverDestroyed::construct):
* StitchMarker/wtf/StackBounds.h:
(WTF::StackBounds::checkConsistency const):
* StitchMarker/wtf/ValueCheck.h:
* StitchMarker/wtf/Vector.h:
(WTF::minCapacity>::checkConsistency):
* StitchMarker/wtf/text/AtomicStringImpl.cpp:
* StitchMarker/wtf/text/AtomicStringImpl.h:
* StitchMarker/wtf/text/StringCommon.h:
(WTF::hasPrefixWithLettersIgnoringASCIICaseCommon):
* StitchMarker/wtf/text/StringImpl.h:
* StitchMarker/wtf/text/SymbolImpl.h:
* StitchMarker/wtf/text/UniquedStringImpl.h:
2020-01-05 Dean Jackson <dino@apple.com>
Rename GraphicsContext3D to GraphicsContextGL
https://bugs.webkit.org/show_bug.cgi?id=205778
<rdar://problem/58327597>
Reviewed by Sam Weinig.
Rename all the GraphicsContext3D things to GraphicsContextGL
(includes Extensions3D and GRAPHICS_CONTEXT_3D).
GraphicsContext3DBase now becomes GraphicsContextGL.
GraphicsContext3D is now GraphicsContextGLOpenGL (since it represents
the OpenGL implementation of the API).
* StitchMarker/wtf/FeatureDefines.h:
* StitchMarker/wtf/Platform.h:
2019-12-16 Antti Koivisto <antti@apple.com>
Add StyleBench subtest for dynamic media query performance
https://bugs.webkit.org/show_bug.cgi?id=205263
Reviewed by Zalan Bujtas.
Add a subtest that contains a small number of rules inside min/max-width media queries.
The test is executed by resizing the test frame to various widths.
* StyleBench/index.html:
* StyleBench/resources/style-bench.js:
(Random.prototype.chance):
(defaultConfiguration):
(mediaQueryConfiguration):
(predefinedConfigurations):
* StyleBench/resources/tests.js:
(makeSteps):
2019-10-26 Chris Lord <clord@igalia.com>
Put OffscreenCanvas behind a build flag
https://bugs.webkit.org/show_bug.cgi?id=203146
Reviewed by Ryosuke Niwa.
* StitchMarker/wtf/FeatureDefines.h:
2019-10-21 Carlos Alberto Lopez Perez <clopez@igalia.com>
[GTK] Perf test SVG/UnderTheSeeBenchmark.html timeouts.
https://bugs.webkit.org/show_bug.cgi?id=203229
Unreviewed gardening.
* Skipped: Mark 2 new tests timing out in the GTK perf bot.
2019-10-17 Saam Barati <sbarati@apple.com>
Have a CLI version of JetStream 2 to run on watchOS
https://bugs.webkit.org/show_bug.cgi?id=202998
<rdar://problem/56208554>
Reviewed by Tadeu Zagallo.
This patch adds a CLI version of JS2 to run on watchOS. We run most subtests
from the browser version of JS2, but skip a few tests that are particularly
long running, like WSL and some of WTB. We also don't run the Wasm tests
as we don't JIT on watchOS. Each test runs for fewer iterations in the watch
version. 15 is the default iteration count. This benchmark runs in 7 minutes on
a Series 4 watch.
* JetStream2/JetStreamDriver.js:
(getIterationCount):
(getWorstCaseCount):
(Driver.prototype.async.start):
(Driver.prototype.resultsJSON):
(Driver.prototype.dumpJSONResultsIfNeeded):
(Driver.prototype.async.reportScoreToRunBenchmarkRunner):
(DefaultBenchmark):
* JetStream2/RexBench/UniPoker/benchmark.js:
(Benchmark.prototype.validate):
(Benchmark):
* JetStream2/watch-cli.js: Added.
2019-10-17 Adrian Perez de Castro <aperez@igalia.com>
[Linux] Avoid usage of <sys/sysctl.h> in MallocBench
https://bugs.webkit.org/show_bug.cgi?id=203109
Reviewed by Carlos Alberto Lopez Perez.
* MallocBench/MallocBench/CPUCount.cpp: Only include <sys/sysctl.h> if
the sysctl() function will be used.
2019-10-17 Carlos Alberto Lopez Perez <clopez@igalia.com>
[GTK] Perf test IndexedDB/basic/index-cursor-delete.html timeouts
https://bugs.webkit.org/show_bug.cgi?id=203083
Unreviewed gardening.
* Skipped: Skip a test that is timing out on the GTK perf bot.
2019-09-24 Caio Lima <ticaiolima@gmail.com>
[BigInt] Add ValueBitRShift into DFG
https://bugs.webkit.org/show_bug.cgi?id=192663
Reviewed by Robin Morisset.
* BigIntBench/big-int-simple-rshift.js: Added.
(bigInt):
2019-09-09 Jon Lee <jonlee@apple.com>
Upload triangles tests for 3D suite in MotionMark
https://bugs.webkit.org/show_bug.cgi?id=201606
Reviewed by Simon Fraser.
* MotionMark/resources/debug-runner/motionmark.css:
* MotionMark/resources/debug-runner/tests.js:
* MotionMark/tests/3d/resources/webgl.js:
* MotionMark/tests/3d/resources/webgpu.js: Added.
* MotionMark/tests/3d/triangles-webgl.html: Renamed from Websites/browserbench.org/MotionMark1.1/tests/3d/webgl.html.
* MotionMark/tests/3d/triangles-webgpu.html: Copied from PerformanceTests/MotionMark/tests/3d/webgl.html.
2019-08-29 Keith Rollin <krollin@apple.com>
Update .xcconfig symbols to reflect the current set of past and future product versions.
https://bugs.webkit.org/show_bug.cgi?id=200720
<rdar://problem/54305032>
Reviewed by Alex Christensen.
Remove version symbols related to old OS's we no longer support,
ensure that version symbols are defined for OS's we do support.
* MediaTime/Configurations/Base.xcconfig:
* MediaTime/Configurations/DebugRelease.xcconfig:
2019-08-21 Sihui Liu <sihui_liu@apple.com>
Add some IDB performance tests
https://bugs.webkit.org/show_bug.cgi?id=200906
Reviewed by Geoffrey Garen.
Add test coverage for IDB performance, and organize IDB tests into two categories.
* IndexedDB/basic/index-count-key.html: Added.
* IndexedDB/basic/index-count.html: Added.
* IndexedDB/basic/index-cursor-advance.html: Added.
* IndexedDB/basic/index-cursor-continue.html: Added.
* IndexedDB/basic/index-cursor-continuePrimaryKey.html: Added.
* IndexedDB/basic/index-cursor-delete.html: Added.
* IndexedDB/basic/index-cursor-update.html: Added.
* IndexedDB/basic/index-get.html: Added.
* IndexedDB/basic/index-multientry.html: Renamed from PerformanceTests/IndexedDB/index-multientry.html.
* IndexedDB/basic/objectstore-add.html: Added.
* IndexedDB/basic/objectstore-clear.html: Added.
* IndexedDB/basic/objectstore-count.html: Added.
* IndexedDB/basic/objectstore-cursor-advance.html: Added.
* IndexedDB/basic/objectstore-cursor-continue.html: Added.
* IndexedDB/basic/objectstore-cursor-delete.html: Added.
* IndexedDB/basic/objectstore-cursor-update.html: Added.
* IndexedDB/basic/objectstore-cursor.html: Renamed from PerformanceTests/IndexedDB/objectstore-cursor.html.
* IndexedDB/basic/objectstore-delete.html: Renamed from PerformanceTests/IndexedDB/index-get.html.
* IndexedDB/basic/objectstore-get.html: Added.
* IndexedDB/basic/objectstore-put.html: Renamed from PerformanceTests/IndexedDB/objectstore-get.html.
* IndexedDB/stress/large-array-keys.html: Renamed from PerformanceTests/IndexedDB/large-array-keys.html.
* IndexedDB/stress/large-binary-keys.html: Renamed from PerformanceTests/IndexedDB/large-binary-keys.html.
* IndexedDB/stress/large-number-of-inserts-responsiveness.html: Renamed from PerformanceTests/IndexedDB/large-number-of-inserts-responsiveness.html.
* IndexedDB/stress/large-number-of-inserts.html: Renamed from PerformanceTests/IndexedDB/large-number-of-inserts.html.
* IndexedDB/stress/large-string-keys.html: Renamed from PerformanceTests/IndexedDB/large-string-keys.html.
* Skipped:
2019-08-19 Sihui Liu <sihui_liu@apple.com>
Remove IDB-specific quota
https://bugs.webkit.org/show_bug.cgi?id=196545
<rdar://problem/54201783>
Reviewed by Youenn Fablet.
* IndexedDB/large-binary-keys.html:
* IndexedDB/large-string-keys.html:
2019-08-14 Keith Rollin <krollin@apple.com>
Remove support for macOS < 10.13
https://bugs.webkit.org/show_bug.cgi?id=200694
<rdar://problem/54278851>
Reviewed by Youenn Fablet.
Update conditionals that reference __MAC_OS_X_VERSION_MIN_REQUIRED and
__MAC_OS_X_VERSION_MAX_ALLOWED, assuming that they both have values >=
101300. This means that expressions like
"__MAC_OS_X_VERSION_MIN_REQUIRED < 101300" are always False and
"__MAC_OS_X_VERSION_MIN_REQUIRED >= 101300" are always True.
* StitchMarker/wtf/Platform.h:
* StitchMarker/wtf/dependencies/bmalloc/BPlatform.h:
* StitchMarker/wtf/text/icu/TextBreakIteratorICU.h:
(WTF::TextBreakIteratorICU::TextBreakIteratorICU):
(WTF::caretRules): Deleted.
2019-08-06 Michael Saboff <msaboff@apple.com>
Make JSC memory benchmark available on OpenSource
https://bugs.webkit.org/show_bug.cgi?id=195012
Reviewed by Saam Barati.
This patch upstreams the RAMification memory benchmark to open source.
The prior RAMification.py driver script in the Internal directory has been moved here
with the device execution code seperated out to a new Internal driver script.
As a result, command line argument parsing as well as acting on the resulting argument
values has changed. The remote device Runner creates an ArgumentParser object that is
passed through main(). In main(), if we have an ArgumentParser, we use it otherwise we
create one for benchmarking locally. The arguments object returned from argument
parsing is now passed to the Runner constructor so it can extract the settings appropriate
for that particular runner.
Added some sane argument default values for the JSC command patch and the JetStream2
source directory.
Updated the Lua tests to eliminate the testing harness and its overhead, matching what was
done in the Internal tree.
* JetStream2/LuaJSFight/hello_world.js:
(Benchmark.prototype.runIteration): Deleted.
(Benchmark): Deleted.
* JetStream2/LuaJSFight/list_search.js:
(run): Deleted.
(Benchmark.prototype.runIteration): Deleted.
(Benchmark): Deleted.
* JetStream2/LuaJSFight/lists.js:
(): Deleted.
(Benchmark.prototype.runIteration): Deleted.
(Benchmark): Deleted.
* JetStream2/LuaJSFight/richards.js: Added.
(runRichards):
(Scheduler):
(Scheduler.prototype.addIdleTask):
(Scheduler.prototype.addWorkerTask):
(Scheduler.prototype.addHandlerTask):
(Scheduler.prototype.addDeviceTask):
(Scheduler.prototype.addRunningTask):
(Scheduler.prototype.addTask):
(Scheduler.prototype.schedule):
(Scheduler.prototype.release):
(Scheduler.prototype.holdCurrent):
(Scheduler.prototype.suspendCurrent):
(Scheduler.prototype.queue):
(TaskControlBlock):
(TaskControlBlock.prototype.setRunning):
(TaskControlBlock.prototype.markAsNotHeld):
(TaskControlBlock.prototype.markAsHeld):
(TaskControlBlock.prototype.isHeldOrSuspended):
(TaskControlBlock.prototype.markAsSuspended):
(TaskControlBlock.prototype.markAsRunnable):
(TaskControlBlock.prototype.run):
(TaskControlBlock.prototype.checkPriorityAdd):
(TaskControlBlock.prototype.toString):
(IdleTask):
(IdleTask.prototype.run):
(IdleTask.prototype.toString):
(DeviceTask):
(DeviceTask.prototype.run):
(DeviceTask.prototype.toString):
(WorkerTask):
(WorkerTask.prototype.run):
(WorkerTask.prototype.toString):
(HandlerTask):
(HandlerTask.prototype.run):
(HandlerTask.prototype.toString):
(Packet):
(Packet.prototype.addTo):
(Packet.prototype.toString):
* JetStream2/LuaJSFight/string_lists.js:
(): Deleted.
(Benchmark.prototype.runIteration): Deleted.
(Benchmark): Deleted.
* JetStream2/RAMification.py: Added.
(mean):
(geomean):
(frameworkPathFromExecutablePath):
(parseArgs):
(parseArgs.optStrToBool):
(BaseRunner):
(BaseRunner.__init__):
(BaseRunner.setup):
(BaseRunner.setEnv):
(BaseRunner.unsetEnv):
(BaseRunner.resetForTest):
(BaseRunner.processLine):
(BaseRunner.setReturnCode):
(BaseRunner.getResults):
(LocalRunner):
(LocalRunner.__init__):
(LocalRunner.runOneTest):
(main):
(main.runTestList):
* JetStream2/__init__.py: Added.
2019-07-23 Keith Rollin <krollin@apple.com>
Remove rest of NavigatorContentUtils support
https://bugs.webkit.org/show_bug.cgi?id=200052
<rdar://problem/53467357>
Reviewed by Alex Christensen.
Bug 196070 removes most of the support for the never-used
NavigatorContentUtils facility. However, there were still a couple of
left-over references after that change. This patch sweeps those up.
* StitchMarker/wtf/FeatureDefines.h:
2019-07-12 Caio Lima <ticaiolima@gmail.com>
[BigInt] Add ValueBitLShift into DFG
https://bugs.webkit.org/show_bug.cgi?id=192664
Reviewed by Saam Barati.
* BigIntBench/big-int-simple-lshift.js: Added.
2019-06-28 Konstantin Tokarev <annulen@yandex.ru>
Remove traces of ENABLE_ICONDATABASE remaining after its removal in 219733
https://bugs.webkit.org/show_bug.cgi?id=199317
Reviewed by Michael Catanzaro.
While IconDatabase and all code using it was removed,
ENABLE_ICONDATABASE still exists as build option and C++ macro.
* StitchMarker/wtf/FeatureDefines.h:
2019-06-27 Beth Dakin <bdakin@apple.com>
Upstream use of MACCATALYST
https://bugs.webkit.org/show_bug.cgi?id=199245
rdar://problem/51687723
Reviewed by Tim Horton.
* MediaTime/Configurations/SDKVariant.xcconfig:
2019-06-20 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] Remove support for GTK2 plugins
https://bugs.webkit.org/show_bug.cgi?id=199065
Reviewed by Sergio Villar Senin.
* StitchMarker/wtf/Platform.h:
2019-05-08 Caio Lima <ticaiolima@gmail.com>
[BigInt] Add ValueMod into DFG
https://bugs.webkit.org/show_bug.cgi?id=186174
Reviewed by Saam Barati.
* BigIntBench/big-int-simple-mod.js: Added.
2019-05-06 Saam Barati <sbarati@apple.com>
JS2 should print scores for different categories
https://bugs.webkit.org/show_bug.cgi?id=197605
Reviewed by Yusuke Suzuki.
* JetStream2/JetStreamDriver.js:
(displayCategoryScores):
(isInBrowser.document.onkeydown):
(Driver.prototype.async.start):
(Driver.prototype.async.reportScoreToRunBenchmarkRunner):
2019-04-16 Jon Lee <jonlee@apple.com>
[MotionMark] The text "kkkj" is causing Firefox console warning: `unreachable code after return statement`
https://bugs.webkit.org/show_bug.cgi?id=196814
Reviewed by Wenson Hsieh.
* MotionMark/resources/extensions.js:
(subtract.subtract.sampleY):
2019-04-15 Myles C. Maxfield <mmaxfield@apple.com>
[Cocoa] FontPlatformData objects aren't cached at all when using font-family:system-ui
https://bugs.webkit.org/show_bug.cgi?id=196846
<rdar://problem/49499971>
Reviewed by Simon Fraser and Darin Adler.
* Layout/system-ui-rebuild-emoji.html: Added.
2019-04-03 Myles C. Maxfield <mmaxfield@apple.com>
-apple-trailing-word is needed for browser detection
https://bugs.webkit.org/show_bug.cgi?id=196575
Unreviewed.
* MotionMark/resources/debug-runner/motionmark.css:
(#intro .start-benchmark p):
2019-03-27 Ryan Haddad <ryanhaddad@apple.com>
REGRESSION (r242911?): High Sierra Release WK2 Perf bot timing out while running IndexedDB/large-number-of-inserts.html
https://bugs.webkit.org/show_bug.cgi?id=195952
Unreviewed test gardening.
* Skipped: Skip the affected test so the bot will finish the run.
2019-03-27 Saam Barati <sbarati@apple.com>
JetStream 2 should not report time values as scores
https://bugs.webkit.org/show_bug.cgi?id=196334
Reviewed by Yusuke Suzuki.
* JetStream2/JetStreamDriver.js:
(toTimeValue):
(Driver.prototype.async.reportScoreToRunBenchmarkRunner):
2019-03-27 Saam barati <sbarati@apple.com>
Unreviewed. Fix individual benchmark description urls to go to in-depth.html instead of about.html
* JetStream2/JetStreamDriver.js:
(Driver.prototype.prepareToRun.text.div.id.string_appeared_here.h3):
2019-03-25 Saam barati <sbarati@apple.com>
Update the blurb describing JetStream2 and fix a broken link in the in-depth page.
Rubber-stamped by Filip Pizlo.
* JetStream2/in-depth.html:
* JetStream2/index.html:
2019-03-18 Saam Barati <sbarati@apple.com>
Add a plan file for JetStream 2
https://bugs.webkit.org/show_bug.cgi?id=190734
Reviewed by Mark Lam.
Make the delay when starting via run-benchmark longer to allow
the page's animation to finish.
* JetStream2/JetStreamDriver.js:
(Driver.prototype.async.initialize):
2019-03-15 Jon Davis <jond@apple.com>
Fixed a bug preventing the overall sore to be displayed on JetStream2
https://bugs.webkit.org/show_bug.cgi?id=195817
Rubber-stamped by Saam Barati.
* JetStream2/JetStreamDriver.js:
(Driver.prototype.async.start):
2019-03-14 Jon Davis <jond@apple.com>
Implement a new design for JetStream2
https://bugs.webkit.org/show_bug.cgi?id=195492
Reviewed by Saam Barati.
* JetStream2/JetStream.css:
(html):
(body):
(::selection):
(main):
(.logo):
(.logo .logo-image):
(#jetstreams):
(#jetstreams svg):
(.summary):
(.summary + .summary):
(.summary:empty):
(article, .summary):
(h1):
(h2, h3, h4, h5, h6):
(h4, h5, h6):
(p):
(h5, h6):
(h6):
(a:link,):
(a:hover,):
(#status):
(#status label,):
(a.button):
(#status.loading):
(#status.error):
(.error h2, .error p):
(.error h2):
(#result-summary):
(#result-summary label):
(#result-summary .score):
(#result-summary .score .interval):
(#results):
(.benchmark):
(.benchmark h3, .benchmark h4, .benchmark .result, .benchmark label):
(.benchmark-running h4, .benchmark-running .result, .benchmark-running label):
(.benchmark-done h3, .benchmark-done h4, .benchmark-done .result, .benchmark-done label):
(.benchmark h3):
(.benchmark-running h3):
(.benchmark-done h3):
(.benchmark h3 a,):
(.benchmark-done h3 a:hover):
(.benchmark h4):
(.benchmark-done h4):
(.benchmark p,):
(.benchmark .result):
(.benchmark-done .result):
(.benchmark label):
(.benchmark-done label):
(@keyframes fadein):
(to):
(@keyframes scaledown):
(@keyframes shine):
(100%):
(@keyframes swingin):
(@media (max-width: 415px)):
(#logo): Deleted.
(p.summary): Deleted.
(p.summary + p.summary): Deleted.
(p.summary:empty): Deleted.
(p:first-of-type): Deleted.
(#status a:link): Deleted.
(.interval): Deleted.
(a:link, a:visited): Deleted.
(a:link:hover): Deleted.
(table): Deleted.
(td, th): Deleted.
(th): Deleted.
(tr:first-child > th:nth-child(even)): Deleted.
(tr:nth-child(even):not(:first-child, .benchmark-running)): Deleted.
(.result): Deleted.
(.benchmark-running): Deleted.
(:not(.benchmark-running) .result): Deleted.
(.benchmark-running .result): Deleted.
(.benchmark-name): Deleted.
(.result.category,): Deleted.
(.benchmark-name:not(.category):not(.geometric-mean)): Deleted.
(.geometric-mean): Deleted.
(.benchmark-name:not(:first-child)): Deleted.
(.benchmark-name a:link,): Deleted.
(.highlighted-result): Deleted.
* JetStream2/JetStream2Logo.svg: Added.
* JetStream2/JetStreamDriver.js:
(updateUI):
(Driver.prototype.async.start):
(Driver.prototype.prepareToRun.text.div.id.string_appeared_here.h3):
(Driver.prototype.prepareToRun.text.span):
(Driver.prototype.prepareToRun.a.h3.h4):
(Driver.prototype.prepareToRun.text.div):
(Driver.prototype.async.initialize):
(Driver.prototype.async.fetchResources.prototype.statusElement.onclick):
(prototype.fetchResources):
(prototype.updateUIBeforeRun):
(prototype.updateUIAfterRun):
(Driver.prototype.async.fetchResources.statusElement.innerHTML.a.href.string_appeared_here):
(Driver.prototype.async.fetchResources):
(Driver.prototype.prepareToRun.text.tr.id.string_appeared_here.FIXME.link.to.benchmark.explanation.td): Deleted.
* JetStream2/clouds.svg: Added.
* JetStream2/in-depth.html:
* JetStream2/index.html:
* JetStream2/jetstreams.svg: Added.
2019-03-11 Caio Lima <ticaiolima@gmail.com>
[ESNext][BigInt] Implement "~" unary operation
https://bugs.webkit.org/show_bug.cgi?id=182216
Reviewed by Keith Miller.
* BigIntBench/big-int-simple-bit-not.js: Added.
2019-03-04 Saam Barati <sbarati@apple.com>
Add a detailed summary page for JetStream 2
https://bugs.webkit.org/show_bug.cgi?id=195014
Rubber-stamped by Darin Adler.
* JetStream2/JetStream.css:
(a:link, a:visited):
* JetStream2/in-depth.html: Added.
2019-02-08 Saam barati <sbarati@apple.com>
Update JetStream2 CLI to not print "ms" since we now just print the score values
https://bugs.webkit.org/show_bug.cgi?id=193981
Reviewed by Yusuke Suzuki.
* JetStream2/JetStreamDriver.js:
(DefaultBenchmark.prototype.updateUIAfterRun):
(DefaultBenchmark):
(WSLBenchmark.prototype.updateUIAfterRun):
(WSLBenchmark):
(WasmBenchmark.prototype.updateUIAfterRun):
(WasmBenchmark):
2019-01-31 Sihui Liu <sihui_liu@apple.com>
REGRESSION (r240358): IndexedDB/large-binary-keys.html and IndexedDB/large-string-keys.html perf tests failing
https://bugs.webkit.org/show_bug.cgi?id=193956
<rdar://problem/47623109>
Reviewed by Ryosuke Niwa.
r240358 sets default IDB quota as 50 MB for single test, we need to increase that for big tests.
* IndexedDB/large-binary-keys.html:
* IndexedDB/large-string-keys.html:
2019-01-18 Saam Barati <sbarati@apple.com>
Use scores everywhere in JetStream2's UI
https://bugs.webkit.org/show_bug.cgi?id=193593
Reviewed by Keith Miller.
* JetStream2/JetStreamDriver.js:
(DefaultBenchmark.prototype.processResults):
(DefaultBenchmark.prototype.get score):
(DefaultBenchmark.scoreDescription):
(WSLBenchmark.prototype.processResults):
(WSLBenchmark.prototype.get score):
(WSLBenchmark.scoreDescription):
(WasmBenchmark.prototype.processResults):
(WasmBenchmark.prototype.get score):
(WasmBenchmark.scoreDescription):
* JetStream2/index.html:
2019-01-18 Jer Noble <jer.noble@apple.com>
SDK_VARIANT build destinations should be separate from non-SDK_VARIANT builds
https://bugs.webkit.org/show_bug.cgi?id=189553
Reviewed by Tim Horton.
* MediaTime/Configurations/Base.xcconfig:
* MediaTime/Configurations/SDKVariant.xcconfig: Added.
2019-01-17 Truitt Savell <tsavell@apple.com>
Unreviewed, rolling out r240124.
This commit broke an internal build.
Reverted changeset:
"SDK_VARIANT build destinations should be separate from non-
SDK_VARIANT builds"
https://bugs.webkit.org/show_bug.cgi?id=189553
https://trac.webkit.org/changeset/240124
2019-01-17 Jer Noble <jer.noble@apple.com>
SDK_VARIANT build destinations should be separate from non-SDK_VARIANT builds
https://bugs.webkit.org/show_bug.cgi?id=189553
Reviewed by Tim Horton.
* MediaTime/Configurations/Base.xcconfig:
* MediaTime/Configurations/SDKVariant.xcconfig: Added.
2018-12-20 Caio Lima <ticaiolima@gmail.com>
[BigInt] We should enable CSE into arithmetic operations that speculate BigIntUse
https://bugs.webkit.org/show_bug.cgi?id=192723
Reviewed by Yusuke Suzuki.
* BigIntBench/big-int-cse.js: Added.
* BigIntBench/big-int-global-cse.js: Added.
* BigIntBench/big-int-licm.js: Added.
2018-12-19 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r239377.
https://bugs.webkit.org/show_bug.cgi?id=192921
broke 32-bit JSC tests (Requested by keith_miller on #webkit).
Reverted changeset:
"[BigInt] We should enable CSE into arithmetic operations that
speculate BigIntUse"
https://bugs.webkit.org/show_bug.cgi?id=192723
https://trac.webkit.org/changeset/239377
2018-12-19 Caio Lima <ticaiolima@gmail.com>
[BigInt] We should enable CSE into arithmetic operations that speculate BigIntUse
https://bugs.webkit.org/show_bug.cgi?id=192723
Reviewed by Saam Barati.
* BigIntBench/big-int-cse.js: Added.
* BigIntBench/big-int-global-cse.js: Added.
* BigIntBench/big-int-licm.js: Added.
2018-12-17 Suresh Koppisetty <skoppisetty@apple.com>
Add "-o/--output" option to startup.py and new_tab.py benchmark scripts to save the results in json format.
https://bugs.webkit.org/show_bug.cgi?id=192385
Reviewed by Ryosuke Niwa.
Sample json output for new tab benchmark script after running for 2 iterations and 2 groups. Values are in milliseconds.
{
"NewTabBenchmark": {
"metrics": {
"Time": {
"current": [
[
410.2939453125,
307.81494140625
],
[
340.616943359375,
265.94384765625
]
]
}
}
}
}
Sample json output for startup time benchmark script after running for 2 iterations. Values are in milliseconds.
{
"StartupBenchmark": {
"metrics": {
"Time": {
"current": [
[
1415.2099609375,
1439.552978515625
]
]
}
}
}
}
* LaunchTime/launch_time.py:
* LaunchTime/new_tab.py:
(NewTabBenchmark.get_test_name):
* LaunchTime/startup.py:
(StartupBenchmark.get_test_name):
2018-12-17 Suresh Koppisetty <skoppisetty@apple.com>
Import FeedbackServer only if "-f/--feedback-in-browser" option is enabled.
https://bugs.webkit.org/show_bug.cgi?id=192378
Reviewed by Ryosuke Niwa.
FeedbackServer currently depends on Tornado-5.1, which further adds
dependency of "singledispatch", "backports-abc" and "futures" python libraries.
Importing FeedbackServer only if "-f/--feedback-in-browser" option is enabled
will let us run the benchmark scripts without installing any new python libraries.
* LaunchTime/launch_time.py:
* LaunchTime/new_tab.py:
2018-12-13 Caio Lima <ticaiolima@gmail.com>
[BigInt] Add ValueDiv into DFG
https://bugs.webkit.org/show_bug.cgi?id=186178
Reviewed by Yusuke Suzuki.
* BigIntBench/big-int-simple-div.js: Added.
* BigIntBench/value-div-type-propagation.js: Added.
2018-12-10 Caio Lima <ticaiolima@gmail.com>
[BigInt] Add ValueMul into DFG
https://bugs.webkit.org/show_bug.cgi?id=186175
Reviewed by Yusuke Suzuki.
* BigIntBench/big-int-simple-mul.js: Added.
* BigIntBench/value-mul-type-propagation.js: Added.
2018-11-07 Caio Lima <ticaiolima@gmail.com>
[BigInt] Add support to BigInt into ValueAdd
https://bugs.webkit.org/show_bug.cgi?id=186177
Reviewed by Keith Miller.
The idea of BigIntBench is to provide a set of microbenchmarks and
benchmarks to evaluate how fast BigInt computations are happening on
JSC implementation.
Now, we are adding microbenchmarks in this set,
but the plan is to move these tests to "JSTest/microbenchmarks" when
BigInt is enabled by default. After that, the focus of Bigint bench is
to provide a set of tests that represents real use cases of BigInt in
JS programs.
* BigIntBench/big-int-add-prediction-propagation.js: Added.
* BigIntBench/big-int-simple-add.js: Added.
* BigIntBench/big-int-simple-sub.js: Added.
2018-11-07 Tadeu Zagallo <tzagallo@apple.com>
REGRESSION(r237547): Test failures on 32-bit JSC since the JIT was disabled
https://bugs.webkit.org/show_bug.cgi?id=191184
Reviewed by Saam Barati.
Skip test when the JIT is disabled, it takes too long to run on CLoop.
* JetStream/cdjs/main.js:
2018-11-05 Myles C. Maxfield <mmaxfield@apple.com>
Cache glyph paths and share underline skipping code between all the ports
https://bugs.webkit.org/show_bug.cgi?id=191239
Reviewed by Alex Christensen.
Measures the performance of drawing a whole lot of underlines
* Layout/underline.html: Added.
2018-10-25 Saam Barati <sbarati@apple.com>
Check in corresponding C code in JetStream 2
https://bugs.webkit.org/show_bug.cgi?id=190733
Rubber-stamped by Filip Pizlo.
* JetStream2/simple/float-mm.c: Added.
* JetStream2/wasm/HashSet.cpp: Added.
* JetStream2/wasm/gcc-loops.cpp: Added.
* JetStream2/wasm/quicksort.c: Added.
* JetStream2/wasm/TSF: Added.
* JetStream2/wasm/TSF/build.sh: Added.
* JetStream2/wasm/TSF/config.h: Added.
* JetStream2/wasm/TSF/gpc.h: Added.
* JetStream2/wasm/TSF/gpc_code_gen_util.c: Added.
* JetStream2/wasm/TSF/gpc_instruction.c: Added.
* JetStream2/wasm/TSF/gpc_instruction_dispatch.gen: Added.
* JetStream2/wasm/TSF/gpc_instruction_size.gen: Added.
* JetStream2/wasm/TSF/gpc_instruction_stack_effects.gen: Added.
* JetStream2/wasm/TSF/gpc_instruction_static_size.gen: Added.
* JetStream2/wasm/TSF/gpc_instruction_to_string.gen: Added.
* JetStream2/wasm/TSF/gpc_int_common.h: Added.
* JetStream2/wasm/TSF/gpc_intable.c: Added.
* JetStream2/wasm/TSF/gpc_internal.h: Added.
* JetStream2/wasm/TSF/gpc_interpreter.gen: Added.
* JetStream2/wasm/TSF/gpc_program.c: Added.
* JetStream2/wasm/TSF/gpc_proto.c: Added.
* JetStream2/wasm/TSF/gpc_stack_height.c: Added.
* JetStream2/wasm/TSF/gpc_threaded.c: Added.
* JetStream2/wasm/TSF/gpc_worklist.h: Added.
* JetStream2/wasm/TSF/tsf.h: Added.
* JetStream2/wasm/TSF/tsf_adaptive_reader.c: Added.
* JetStream2/wasm/TSF/tsf_asprintf.c: Added.
* JetStream2/wasm/TSF/tsf_atomics.h: Added.
* JetStream2/wasm/TSF/tsf_buf_reader.c: Added.
* JetStream2/wasm/TSF/tsf_buf_writer.c: Added.
* JetStream2/wasm/TSF/tsf_buffer.c: Added.
* JetStream2/wasm/TSF/tsf_build_defines.h: Added.
* JetStream2/wasm/TSF/tsf_config.h: Added.
* JetStream2/wasm/TSF/tsf_config_stub.h: Added.
* JetStream2/wasm/TSF/tsf_copier.c: Added.
* JetStream2/wasm/TSF/tsf_define_helpers.c: Added.
* JetStream2/wasm/TSF/tsf_define_helpers.h: Added.
* JetStream2/wasm/TSF/tsf_destructor.c: Added.
* JetStream2/wasm/TSF/tsf_error.c: Added.
* JetStream2/wasm/TSF/tsf_format.h: Added.
* JetStream2/wasm/TSF/tsf_fsdb.c: Added.
* JetStream2/wasm/TSF/tsf_fsdb_protocol.c: Added.
* JetStream2/wasm/TSF/tsf_fsdb_protocol.h: Added.
* JetStream2/wasm/TSF/tsf_generator.c: Added.
* JetStream2/wasm/TSF/tsf_gpc_code_gen.c: Added.
* JetStream2/wasm/TSF/tsf_indent.h: Added.
* JetStream2/wasm/TSF/tsf_internal.h: Added.
* JetStream2/wasm/TSF/tsf_internal_config.h: Added.
* JetStream2/wasm/TSF/tsf_internal_config_stub.h: Added.
* JetStream2/wasm/TSF/tsf_inttypes.h: Added.
* JetStream2/wasm/TSF/tsf_io.c: Added.
* JetStream2/wasm/TSF/tsf_io_utils.c: Added.
* JetStream2/wasm/TSF/tsf_ir.c: Added.
* JetStream2/wasm/TSF/tsf_ir.h: Added.
* JetStream2/wasm/TSF/tsf_ir_different.c: Added.
* JetStream2/wasm/TSF/tsf_ir_different.h: Added.
* JetStream2/wasm/TSF/tsf_ir_speed.c: Added.
* JetStream2/wasm/TSF/tsf_limits.c: Added.
* JetStream2/wasm/TSF/tsf_named_type.c: Added.
* JetStream2/wasm/TSF/tsf_native.c: Added.
* JetStream2/wasm/TSF/tsf_parser.c: Added.
* JetStream2/wasm/TSF/tsf_primitive.c: Added.
* JetStream2/wasm/TSF/tsf_ra_type_man.c: Added.
* JetStream2/wasm/TSF/tsf_reflect.c: Added.
* JetStream2/wasm/TSF/tsf_region.h: Added.
* JetStream2/wasm/TSF/tsf_serial_in_man.c: Added.
* JetStream2/wasm/TSF/tsf_serial_out_man.c: Added.
* JetStream2/wasm/TSF/tsf_serial_protocol.h: Added.
* JetStream2/wasm/TSF/tsf_sha1.c: Added.
* JetStream2/wasm/TSF/tsf_sha1.h: Added.
* JetStream2/wasm/TSF/tsf_sha1_writer.c: Added.
* JetStream2/wasm/TSF/tsf_sort.c: Added.
* JetStream2/wasm/TSF/tsf_st.c: Added.
* JetStream2/wasm/TSF/tsf_st.h: Added.
* JetStream2/wasm/TSF/tsf_st_typetable.c: Added.
* JetStream2/wasm/TSF/tsf_stream_file_input.c: Added.
* JetStream2/wasm/TSF/tsf_stream_file_output.c: Added.
* JetStream2/wasm/TSF/tsf_type.c: Added.
* JetStream2/wasm/TSF/tsf_type_in_map.c: Added.
* JetStream2/wasm/TSF/tsf_type_out_map.c: Added.
* JetStream2/wasm/TSF/tsf_type_table.c: Added.
* JetStream2/wasm/TSF/tsf_types.h: Added.
* JetStream2/wasm/TSF/tsf_util.h: Added.
* JetStream2/wasm/TSF/tsf_version.c: Added.
* JetStream2/wasm/TSF/tsf_zip_abstract.c: Added.
* JetStream2/wasm/TSF/tsf_zip_abstract.h: Added.
* JetStream2/wasm/TSF/tsf_zip_attr.c: Added.
* JetStream2/wasm/TSF/tsf_zip_reader.c: Added.
* JetStream2/wasm/TSF/tsf_zip_writer.c: Added.
2018-10-18 Saam Barati <sbarati@apple.com>
Make JetStream 2
https://bugs.webkit.org/show_bug.cgi?id=187829
Rubber-stamped by Mark Lam.
This patch checks in the new JetStream 2 benchmark. JetStream 2 is
a new JavaScript and Web Assembly benchmark. JetStream 2's goal
is to measure the startup, worst case, and peak throughput performance
of the JavaScript engine. JetStream 2 incorporates these previous
benchmarks:
- JetStream
- ARES-6
- Kraken
- Web Tooling Benchmark
- WasmBench
- RexBench
JetStream 2 also adds some new benchmarks:
- Two tests emphasizing web worker performance.
- One test emphasizing Promise, async iteration, and DataView performance.
- Two new code load tests.
- WSL: a test measuring all kinds of things, especially emphasizing exception performance.
* JetStream2: Added.
2018-10-02 Chris Dumez <cdumez@apple.com>
Regression(r236613): Parser/html-parser.html performance test is failing
https://bugs.webkit.org/show_bug.cgi?id=190201
Unreviewed, apply the same fix as in r236699 to make sure the iframe is treated as
same origin, so that calls to document.open() / document.write() succeed.
* Parser/html-parser.html:
2018-10-01 Chris Dumez <cdumez@apple.com>
Regression(r236613): Parser/HTML5-8266-ParseOnly.html performance tests no longer runs
https://bugs.webkit.org/show_bug.cgi?id=190174
Reviewed by Ryosuke Niwa.
Update iframe's sandbox to use 'allow-same-origin' so that the iframe is treated as same-origin and so that
the top frame can call document.open() / document.write() on the subframe. This test was also failing in
Firefox without this change.
* Parser/HTML5-8266-ParseOnly.html:
2018-08-27 Aditya Keerthi <akeerthi@apple.com>
Consolidate ENABLE_INPUT_TYPE_COLOR and ENABLE_INPUT_TYPE_COLOR_POPOVER
https://bugs.webkit.org/show_bug.cgi?id=188931
Reviewed by Wenson Hsieh.
* StitchMarker/wtf/FeatureDefines.h: Removed ENABLE_INPUT_TYPE_COLOR_POPOVER.
2018-08-23 Don Olmstead <don.olmstead@sony.com>
[CMake] Have checks are not getting set inside CMake properly
https://bugs.webkit.org/show_bug.cgi?id=188901
Reviewed by Michael Catanzaro.
Add notification that MallocBench is disabled.
* CMakeLists.txt:
2018-08-23 Don Olmstead <don.olmstead@sony.com>
[CMake] Add HAVE_MALLOC_TRIM definition
https://bugs.webkit.org/show_bug.cgi?id=188897
Reviewed by Konstantin Tokarev.
MallocBench should only be built on Apple platforms and platforms that
have malloc_trim.
* CMakeLists.txt:
2018-08-13 Jon Lee <jonlee@apple.com>
Update MotionMark version number
https://bugs.webkit.org/show_bug.cgi?id=188535
<rdar://problem/43254078>
Reviewed by Said Abou-Hallawa.
* MotionMark/resources/strings.js: To 1.1.
2018-08-13 Jon Lee <jonlee@apple.com>
[MotionMark] Update Multiply test
https://bugs.webkit.org/show_bug.cgi?id=188532
<rdar://problem/43252151>
Reviewed by Said Abou-Hallawa.
Update Multiply test to have a larger upper limit of number of particles. Cycle through three
different ways of hiding an element. Add new Multiple suite that isolates those components for
debugging purposes.
* MotionMark/resources/debug-runner/tests.js:
* MotionMark/tests/dom/multiply.html: Added.
* MotionMark/tests/dom/resources/multiply.js: Added.
* MotionMark/tests/master/resources/multiply.js:
2018-08-13 Jon Lee <jonlee@apple.com>
[MotionMark] Update Leaves test
https://bugs.webkit.org/show_bug.cgi?id=188530
<rdar://problem/43251862>
Reviewed by Said Abou-Hallawa.
Update Leaves test to include opacity and scale. Add new Leaves suite that isolate those components
for debugging purposes.
* MotionMark/resources/debug-runner/tests.js:
* MotionMark/tests/dom/leaves.html:
* MotionMark/tests/dom/resources/leaves.js:
* MotionMark/tests/master/resources/leaves.js:
2018-08-10 Ben Richards <benton_richards@apple.com>
Add ability to ignore process prewarming for launch time benchmark
https://bugs.webkit.org/show_bug.cgi?id=188462
Reviewed by Ryosuke Niwa.
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.
* LaunchTime/launch_time.py:
(DefaultLaunchTimeHandler):
(DefaultLaunchTimeHandler.on_receive_stop_time): Deleted.
(DefaultLaunchTimeHandler.on_receive_stop_signal):
(DefaultLaunchTimeHandler.do_HEAD):
(DefaultLaunchTimeHandler.do_GET):
(DefaultLaunchTimeHandler.do_POST):
(LaunchTimeBenchmark):
(LaunchTimeBenchmark._standard_deviation): Fixed divide by zero bug when '-n' is set to 1
(LaunchTimeBenchmark.open_tab): Added option to open a blank tab
(LaunchTimeBenchmark.run):
* LaunchTime/new_tab.py:
(NewTabBenchmark.initialize):
(NewTabBenchmark.run_iteration):
(NewTabBenchmark.will_parse_arguments):
(NewTabBenchmark.did_parse_arguments):
(NewTabBenchmark.ResponseHandler.Handler.get_test_page):
(NewTabBenchmark.ResponseHandler.Handler.on_receive_stop_time): Deleted.
(NewTabBenchmark.ResponseHandler.Handler.on_receive_stop_signal):
(NewTabBenchmark):
* LaunchTime/startup.py:
(StartupBenchmark.ResponseHandler.Handler.get_test_page):
(StartupBenchmark.ResponseHandler.Handler.on_receive_stop_time): Deleted.
(StartupBenchmark.ResponseHandler.Handler.on_receive_stop_signal):
(StartupBenchmark):
2018-08-10 Truitt Savell <tsavell@apple.com>
Unreviewed, rolling out r234750.
Caused 185 perf test failures.
Reverted changeset:
"Add ability to ignore process prewarming for launch time
benchmark"
https://bugs.webkit.org/show_bug.cgi?id=188462
https://trac.webkit.org/changeset/234750
2018-08-09 Ben Richards <benton_richards@apple.com>
Add ability to ignore process prewarming for launch time benchmark
https://bugs.webkit.org/show_bug.cgi?id=188462
Reviewed by Ryosuke Niwa.
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.
* LaunchTime/launch_time.py:
(DefaultLaunchTimeHandler):
(DefaultLaunchTimeHandler.on_receive_stop_time): Deleted.
(DefaultLaunchTimeHandler.on_receive_stop_signal):
(DefaultLaunchTimeHandler.do_HEAD):
(DefaultLaunchTimeHandler.do_GET):
(DefaultLaunchTimeHandler.do_POST):
(LaunchTimeBenchmark):
(LaunchTimeBenchmark._standard_deviation): Fixed divide by zero bug when '-n' is set to 1
(LaunchTimeBenchmark.open_tab): Added option to open a blank tab
(LaunchTimeBenchmark.run):
* LaunchTime/new_tab.py:
(NewTabBenchmark.initialize):
(NewTabBenchmark.run_iteration):
(NewTabBenchmark.will_parse_arguments):
(NewTabBenchmark.did_parse_arguments):
(NewTabBenchmark.ResponseHandler.Handler.get_test_page):
(NewTabBenchmark.ResponseHandler.Handler.on_receive_stop_time): Deleted.
(NewTabBenchmark.ResponseHandler.Handler.on_receive_stop_signal):
(NewTabBenchmark):
* LaunchTime/startup.py:
(StartupBenchmark.ResponseHandler.Handler.get_test_page):
(StartupBenchmark.ResponseHandler.Handler.on_receive_stop_time): Deleted.
(StartupBenchmark.ResponseHandler.Handler.on_receive_stop_signal):
(StartupBenchmark):
2018-07-26 Andy VanWagoner <andy@vanwagoner.family>
[INTL] Remove INTL sub-feature compile flags
https://bugs.webkit.org/show_bug.cgi?id=188081
Reviewed by Michael Catanzaro.
Removed old and unused i18n flag.
* StitchMarker/wtf/FeatureDefines.h:
2018-07-20 David Fenton <david_fenton@apple.com>
REGRESSION (234006) ERROR: Blocked access to external URL http://code.jquery.com/jquery-1.9.1.min.js
https://bugs.webkit.org/show_bug.cgi?id=187858
Unreviewed test gardening, skipped test.
* Skipped: LaunchTime
2018-07-19 Ben Richards <benton_richards@apple.com>
Add benchmark for WebKit process launch times
https://bugs.webkit.org/show_bug.cgi?id=186414
Reviewed by Ryosuke Niwa.
Added two benchmarks, one for measuring browser new tab launch time and one for browser startup time.
* LaunchTime/.gitignore: Added.
* LaunchTime/feedback_client.html: Added.
Displays benchmark progress in browser
* LaunchTime/feedback_server.py: Added.
(FeedbackServer): Sends data to feedback_client via websocket
(FeedbackServer.__init__):
(FeedbackServer._create_app):
(FeedbackServer._start_server):
(FeedbackServer._send_all_messages):
(FeedbackServer.start):
(FeedbackServer.stop):
(FeedbackServer.send_message): Send a message to the feedback_client
(FeedbackServer.wait_until_client_has_loaded): Wait until the feedback_client has opened a websocket connection to the feedback_server
(FeedbackServer.MainHandler): Handler factory to create handler that serves feedback_client.html
(FeedbackServer.MainHandler.Handler):
(FeedbackServer.MainHandler.Handler.get):
(FeedbackServer.WSHandler): Handler factory to create handler that sends data to feedback client
(FeedbackServer.WSHandler.Handler):
(FeedbackServer.WSHandler.Handler.open): On websocket connection opened
(FeedbackServer.WSHandler.Handler.on_close): On websocket connection closed
* LaunchTime/launch_time.py: Added.
(DefaultLaunchTimeHandler): Abstract HTTP request handler for launch time benchmarks
(DefaultLaunchTimeHandler.get_test_page): Default test page to be overridden by benchmarks
(DefaultLaunchTimeHandler.get_blank_page):
(DefaultLaunchTimeHandler.on_receive_stop_time):
(DefaultLaunchTimeHandler.do_HEAD):
(DefaultLaunchTimeHandler.do_GET):
(DefaultLaunchTimeHandler.do_POST):
(DefaultLaunchTimeHandler.log_message): Suppresses HTTP logs from SimpleHTTPRequestHandler
(LaunchTimeBenchmark): Abstract class which launch time benchmarks inherit from and override methods desired to customize
(LaunchTimeBenchmark.__init__):
(LaunchTimeBenchmark._parse_browser_bundle_path): Parser for bundle path option
(LaunchTimeBenchmark._parse_args):
(LaunchTimeBenchmark._run_server): Target function for main server thread
(LaunchTimeBenchmark._setup_servers):
(LaunchTimeBenchmark._clean_up):
(LaunchTimeBenchmark._exit_due_to_exception):
(LaunchTimeBenchmark._geometric_mean):
(LaunchTimeBenchmark._standard_deviation):
(LaunchTimeBenchmark._compute_results): Returns mean and std dev of list of results and pretty prints if should_print=True is specified
(LaunchTimeBenchmark._wait_times): Mimic numpy.linspace
(LaunchTimeBenchmark.open_tab): Open a browser tab with the html given by self.response_handler.get_test_page
(LaunchTimeBenchmark.launch_browser): Open a broser to either the feedback client (if option is set) or a blank page
(LaunchTimeBenchmark.quit_browser):
(LaunchTimeBenchmark.quit_browser.quit_app):
(LaunchTimeBenchmark.quit_browser.is_app_closed):
(LaunchTimeBenchmark.close_tab):
(LaunchTimeBenchmark.wait):
(LaunchTimeBenchmark.log): Print to console and send to feedback client if --feedback-in-browser flag is used
(LaunchTimeBenchmark.log_verbose): Only logs if --verbose flag is used
(LaunchTimeBenchmark.run):
(LaunchTimeBenchmark.group_init): Initialization done before each round of iterations
(LaunchTimeBenchmark.run_iteration):
(LaunchTimeBenchmark.initialize): Convenience method to be overriden by subclasses which is called at the end of __init__
(LaunchTimeBenchmark.will_parse_arguments): Called before argparse.parse_args to let subclasses add new command line arguments
(LaunchTimeBenchmark.did_parse_arguments): Called after argparse.parse_args to let subclass initialize based on command line arguments
* LaunchTime/new_tab.py: Added
(NewTabBenchmark):
(NewTabBenchmark._parse_wait_time): Parser for wait time option
(NewTabBenchmark.initialize):
(NewTabBenchmark.run_iteration):
(NewTabBenchmark.group_init):
(NewTabBenchmark.will_parse_arguments):
(NewTabBenchmark.did_parse_arguments):
(NewTabBenchmark.ResponseHandler):
(NewTabBenchmark.ResponseHandler.Handler):
(NewTabBenchmark.ResponseHandler.Handler.get_test_page):
* LaunchTime/startup.py: Added
(StartupBenchmark): This benchmark measures browser startup time and initial page load time
(StartupBenchmark.initialize):
(StartupBenchmark.run_iteration):
(StartupBenchmark.ResponseHandler):
(StartupBenchmark.ResponseHandler.Handler):
(StartupBenchmark.ResponseHandler.Handler.get_test_page):
* LaunchTime/thirdparty/__init__.py: Added.
(AutoinstallImportHook): Auto installs tornado package for feedback server
(AutoinstallImportHook.__init__):
(AutoinstallImportHook._ensure_autoinstalled_dir_is_in_sys_path):
(AutoinstallImportHook.find_module):
(AutoinstallImportHook._install_tornado):
(AutoinstallImportHook.greater_than_equal_to_version):
(AutoinstallImportHook._install):
(AutoinstallImportHook.get_latest_pypi_url):
(AutoinstallImportHook.install_binary):
(autoinstall_everything):
(get_os_info):
2018-06-25 Jon Lee <jonlee@apple.com>
[MotionMark] Add support for version numbers
https://bugs.webkit.org/show_bug.cgi?id=186479
Reviewed by Said Abou-Hallawa.
Add support for displaying the version number as well as including it in the JSON results.
When loading the front page, script replaces any element with classname version with the
version number of the benchmark, which is stored in Strings.version.
The JSON structure for the results includes a new version property:
{
"version": "1.0",
"options": { ... },
"data": [ ... ]
}
When dragging a results file, the version listed will come from the JSON file. Older
results will not have had the version property, in which case it will default to "1.0".
* MotionMark/index.html: Update title to some other default. Script will update it.
Include the version number in the logo title.
* MotionMark/developer.html: Ditto.
* MotionMark/about.html: Ditto.
* MotionMark/resources/runner/motionmark.js:
(ResultsDashboard): Update constructor to include version. This is used when serializing
results out to JSON, and displaying the results panel in developer mode.
(ResultsDashboard._processData): When running the benchmark, include benchmark version string
in the results object.
(ResultsDashboard.version):
(window.benchmarkRunnerClient.willStartFirstIteration): When running the benchmark, pass the
benchmark version string to the dashboard, which holds the results.
(window.sectionsManager.setSectionVersion): Helper function to update the element in the
section with the class name version.
(window.benchmarkController.initialize): Populate all DOM elements with class name "version"
with the version string. Update the page title.
(window.benchmarkController.showResults): When showing results, update the version string
based on what is included in the JSON results, which would be the same as the benchmark version.
* MotionMark/resources/runner/motionmark.css: Include missing copyright. Wrap the SVG logo
in a div and include the version string.
* MotionMark/resources/strings.js: Add strings for the page title template, and the version.
* MotionMark/resources/debug-runner/motionmark.css:
* MotionMark/resources/debug-runner/motionmark.js:
(window.benchmarkRunnerClient.willStartFirstIteration): When running the benchmark, pass the
benchmark version string to the dashboard, which holds the results.
(window.benchmarkController.initialize): Populate all DOM elements with class name "version"
with the version string. Update the page title. When dragging in JSON results, look for
version to pass to the dashboard. If it doesn't exist, default to "1.0".
(window.benchmarkController.showResults): When showing results, update the version string
based on what is included in the JSON results, instead of the current benchmark version.
* MotionMark/resources/debug-runner/tests.js: Update page title template.
2018-06-08 Jon Lee <jonlee@apple.com>
[MotionMark] Rename Suits test files
https://bugs.webkit.org/show_bug.cgi?id=186447
Reviewed by Said Abou-Hallawa.
* MotionMark/resources/runner/tests.js:
* MotionMark/tests/master/resources/suits.js: Renamed from PerformanceTests/MotionMark/tests/master/resources/svg-particles.js.
* MotionMark/tests/master/suits.html: Renamed from PerformanceTests/MotionMark/tests/master/svg-particles.html.
* MotionMark/tests/svg/suits.html:
2018-06-08 Jon Lee <jonlee@apple.com>
Add sub-tests based on Suits
https://bugs.webkit.org/show_bug.cgi?id=186260
Reviewed by Said Abou-Hallawa.
Add a new developer Suits suite with sub-tests that isolate parts of each particle.
The sub-tests are:
- Particles using only clip paths
- Particles using only shapes
- Particles that have no gradients
- Particles that have no rotation
- Particles that do not move around at all (but all of the physics calculations are
still performed)
* MotionMark/resources/debug-runner/tests.js:
* MotionMark/tests/master/resources/svg-particles.js: Rename the stage, particle, and
benchmark to "Suits" from "SVG". Change SuitsParticle so that we guarantee 50% clip and
shape paths rather than relying on random chance. Wrap a check around creation of the
gradient element, and use a simple fill color when we aren't using a gradient.
* MotionMark/tests/svg/suits.html: Added.
* MotionMark/tests/svg/suits.js: Added.
Look for the query string and set the particle based on what is selected.
2018-06-06 Jon Lee <jonlee@apple.com>
Allow the ramp controller to run tests that take less time than the initial ramp-up phase
https://bugs.webkit.org/show_bug.cgi?id=186257
Reviewed by Said Abou-Hallawa.
* MotionMark/tests/resources/main.js: Extend the desired end timestamp when ramp-up occurs.
Previously the controller assumed that the duration of the test was always longer than the
time it took to figure out the order of magnitude of particles to render. When that range
is determined, the end timestamp is then extended. If the duration is too short, the controller
would throw an exception. The fix is to continue extending the timestamp every time the order of
magnitude tiers up.
In general testing with really short durations isn't practical, but sometimes it is
desired for debugging.
To avoid confusion of the private variables, I renamed Benchmark._startTimestamp to
Benchmark._benchmarkStartTimestamp, to disambiguate from Controller._startTimestamp.
Benchmark._startTimestamp is set once and never changed, after the initial 100ms warm-up.
Controller._startTimestamp is initialized to 0 (which means "not initialized"), and then after
the warm up is complete, set in Controller.start() to the same wall clock timestamp, and never
changed afterwards.
2018-06-06 Jon Lee <jonlee@apple.com>
Remove unneeded data processing in MotionMark
https://bugs.webkit.org/show_bug.cgi?id=186256
Reviewed by Said Abou-Hallawa.
Remove calculation of average frame rate based on multiple samples at a given complexity.
It is not used in the calculation of the score, and is just extra work to do at the end
of a test.
* MotionMark/developer.html: Remove options to show average data and regression based on
that data.
* MotionMark/resources/debug-runner/graph.js: Remove data. Update the time graph that
shows the relationship between the break point in the regression against the complexity
graph.
* MotionMark/resources/debug-runner/motionmark.css: Make the confidence intervals easier
to see.
* MotionMark/resources/runner/motionmark.js: Simplify score calculation now that we are
only calculating regressions on the raw data. We were calculating it based on the averages,
but that was just for analysis, and not used in the actual score. Get rid of the
|complexitySamples| local variable.
* MotionMark/resources/strings.js: Remove unneeded string constant.
* MotionMark/tests/resources/main.js:
(processSamples): Refactor so that more of it can be shared between Controller and
RampController. It also avoids processing the raw samples (controllerSamples) twice for
the ramp controller.
(_processComplexitySamples): Remove logic to calculate averages based on complexity.
(_processMarks): Split this out from the old processSamples.
(_processControllerSamples): Split this out from the old processSamples.
2018-06-06 Jon Lee <jonlee@apple.com>
Strip out more characters when creating permalinks
https://bugs.webkit.org/show_bug.cgi?id=186259
Reviewed by Said Abou-Hallawa.
Tests and suites may have names that make permalinks to the tests less readable when
shared. Expand the set of characters that are stripped out of the names.
* MotionMark/resources/debug-runner/motionmark.js: Refactor to call
stripUnwantedCharactersForURL. For existing links, decode the suite and test names.
* MotionMark/resources/extensions.js:
(Utilities.stripUnwantedCharactersForURL): Rename from stripNonASCIICharacters.
Remove any non-alphanumeric character.
2018-06-04 Jon Lee <jonlee@apple.com>
Remove unnecessary MotionMark controllers
https://bugs.webkit.org/show_bug.cgi?id=186255
Reviewed by Said Abou-Hallawa.
Get rid of the ramp30 and the fixed-with-a-step controllers, which aren't used for testing
or debugging.
* MotionMark/developer.html: Move the "ramp" option as first, since that is the default
controller for the benchmark.
* MotionMark/resources/debug-runner/motionmark.js:
* MotionMark/resources/runner/motionmark.js: Added missing copyright notice.
* MotionMark/tests/resources/main.js:
2018-05-25 Myles C. Maxfield <mmaxfield@apple.com>
Improve the performance of Font::canRenderCombiningCharacterSequence()
https://bugs.webkit.org/show_bug.cgi?id=185933
Reviewed by Ryosuke Niwa.
* Layout/ComplexLongUnique.html: Added.
2018-05-25 Saam Barati <sbarati@apple.com>
Have a memory test where we can validate JSCs mini memory mode
https://bugs.webkit.org/show_bug.cgi?id=185932
Reviewed by Mark Lam.
We add a directory here with the contents of the testmem benchmark.
To run it, use `Tools/Scripts/run-testmem`. To add new tests in the future,
you just need to add JS files to this directory.
* testmem: Added.
* testmem/air.js: Added.
* testmem/base64.js: Added.
* testmem/basic.js: Added.
* testmem/box2d.js: Added.
* testmem/crypto-md5.js: Added.
* testmem/date-format-tofte.js: Added.
* testmem/earley-boyer.js: Added.
* testmem/hash-map.js: Added.
* testmem/regex-dna.js: Added.
* testmem/splay.js: Added.
* testmem/tagcloud.js: Added.
2018-05-22 Ryan Haddad <ryanhaddad@apple.com>
Unreviewed, rolling out r232052.
Breaks internal builds.
Reverted changeset:
"Use more C++17"
https://bugs.webkit.org/show_bug.cgi?id=185176
https://trac.webkit.org/changeset/232052
2018-05-21 Yusuke Suzuki <utatane.tea@gmail.com>
Use more C++17
https://bugs.webkit.org/show_bug.cgi?id=185176
Reviewed by JF Bastien.
* MallocBench/MallocBench.xcodeproj/project.pbxproj:
* MediaTime/Configurations/Base.xcconfig:
* MediaTime/MediaTime.xcodeproj/project.pbxproj:
2018-04-30 Myles C. Maxfield <mmaxfield@apple.com>
Improve the performance of FontCascadeDescription's effectiveFamilies
https://bugs.webkit.org/show_bug.cgi?id=184720
Reviewed by Simon Fraser.
This performance test calls SystemFontDatabase::systemFontCascadeList() around 2,000,000 times (before
this patch is applied), which is roughly equivalent to the page we found the performance problem on.
The calling pattern is roughly equivalent in this test.
* Layout/system-ui.html: Added.
2018-03-08 Antti Koivisto <antti@apple.com>
Update StyleBench version number in page title to 0.3
* StyleBench/index.html:
There has been a bunch of changes, most notably the addition of attribute selector test step.
2018-02-16 Dean Jackson <dino@apple.com>
Use OPENGL macros to be more clear about which OpenGL/ES WebGL uses on Cocoa
https://bugs.webkit.org/show_bug.cgi?id=182894
Reviewed by Tim Horton.
Rename OPENGL_ES_2 to OPENGL_ES.
* StitchMarker/wtf/Platform.h:
2018-02-09 Ryosuke Niwa <rniwa@webkit.org>
Make run-perf-tests work with Speedometer 2.0 and re-enable the test
https://bugs.webkit.org/show_bug.cgi?id=182088
Reviewed by Antti Koivisto.
This patch updates the test harness to report new metrics of Speedometer 2.0.
Replaced the total time by the geometric mean of the time spent in each suite, and added scores
as a metric in addition to time. Also, updated the PerfTestRunner harness and the results template
to support "Score" metric with "pt" as its unit.
* Skipped: Unskipped the test.
* Speedometer/resources/benchmark-report.js:
(window.benchmarkClient.willStartFirstIteration..createTest): Added the unit as an optional argument
to report the score in addition to time. Also report the geomean of time instead of the total time.
(window.benchmarkClient.willStartFirstIteration): Report the geomean of time.
(window.benchmarkClient.didRunSuites): Record the entire measuredValues instead of just tests.
(window.benchmarkClient.didFinishLastIteration): Report the scores.
2018-02-09 Ross Kirsling <ross.kirsling@sony.com>
Use REQUEST_ANIMATION_FRAME_DISPLAY_MONITOR on any non-Windows port.
https://bugs.webkit.org/show_bug.cgi?id=182623
Reviewed by Alex Christensen.
* StitchMarker/wtf/Platform.h:
Simplify #if.
2018-02-01 Antti Koivisto <antti@apple.com>
StyleBench: Attribute selectors and other improvements
https://bugs.webkit.org/show_bug.cgi?id=182387
Reviewed by Joseph Pecoraro.
- Add some attributes to elements in all tests
- Add some attribute selectors to stylesheets in all tests
- Also add some * selectors to all stylesheets.
- Add attribute mutation step to all suites
- Make test steps do more mutations (25->100) and reduce the number of steps to keep testing time in check.
Too fast steps were running into timer resolution limits.
* StyleBench/resources/style-bench.js:
(defaultConfiguration):
(prototype.randomAttributeName):
(prototype.randomAttributeValue):
(prototype.randomAttributeSelector):
(prototype.makeCompoundSelector):
(prototype.makeElement):
(prototype.addClasses):
(prototype.removeClasses):
(prototype.mutateAttributes):
(prototype.async.runForever):
* StyleBench/resources/tests.js:
(makeSteps):
(makeSuite):
2018-02-01 Geoffrey Garen <ggaren@apple.com>
Make MallocBench easier for non-WebKit engineers to run
https://bugs.webkit.org/show_bug.cgi?id=182415
Reviewed by Saam Barati.
* MallocBench/MallocBench.xcodeproj/project.pbxproj: Use c++14 so we
can make_unique.
Specify that we support all Darwin platforms so you can test them.
* MallocBench/run-malloc-benchmarks: Specify the path to MallocBench
and libmbmalloc explicitly, rather than computing them implicitly
using webkitdirs. Non-WebKit folks don't have the directory structure
required by webkitdirs.
Remove Linux-specific and cmake-specific behaviors because we only
needed them in the world of implicit path computation.
2018-01-31 Ryosuke Niwa <rniwa@webkit.org>
Make run-perf-tests work with StyleBench and re-enable it
https://bugs.webkit.org/show_bug.cgi?id=182322
Reviewed by Antti Koivisto.
This patch updates the test harness to report new metrics of StyleBench.
Replaced the total time by the geometric mean of the time spent in each suite, and added scores
as a metric in addition to time. Also, updated the PerfTestRunner harness and the results template
to support "Score" metric with "pt" as its unit.
* Skipped: Unskipped the test.
* StyleBench/resources/benchmark-report.js:
(window.benchmarkClient.willStartFirstIteration..createTest): Added the unit as an optional argument
to report the score in addition to time. Also report the geomean of time instead of the total time.
(window.benchmarkClient.willStartFirstIteration): Report the geomean of time.
(window.benchmarkClient.didRunSuites): Record the entire measuredValues instead of just tests.
(window.benchmarkClient.didFinishLastIteration): Report the scores.
* resources/results-template.html: Added "Score" as a metric and "pt" as its unit.
* resources/runner.js:
(PerfTestRunner..finish): Ditto.
2018-01-30 Ryosuke Niwa <rniwa@webkit.org>
StyleBench: Generate more mutation steps
https://bugs.webkit.org/show_bug.cgi?id=182291
Rubber-stamped by Antti Koivisto
Use zero-based index instead of one-based index.
* StyleBench/resources/tests.js:
(makeSteps):
2018-01-30 Antti Koivisto <antti@apple.com>
StyleBench: Generate more mutation steps
https://bugs.webkit.org/show_bug.cgi?id=182291
Reviewed by Ryosuke Niwa.
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).
This also makes test results more stable and less dependent on possible first-time costs.
* StyleBench/resources/benchmark-runner.js:
Adjust correctionFactor to match the new steps count. With 1.5 Firefox is ~72rpm.
* StyleBench/resources/tests.js:
(makeSteps):
Generate 10 rounds of class/element mutation steps.
Give each generated step unique name so reporting works.
Make individual steps do fewer mutations.
2018-01-29 Antti Koivisto <antti@apple.com>
StyleBench: Remove : from a test name
https://bugs.webkit.org/show_bug.cgi?id=182258
Reviewed by Ryosuke Niwa.
It breaks reporting.
* StyleBench/resources/style-bench.js:
(nthPseudoClassConfiguration):
2018-01-29 Ryosuke Niwa <rniwa@webkit.org>
Temporarily skip StyleBench until webkit.org/b/182088 is fixed.
* Skipped:
2018-01-29 Ryosuke Niwa <rniwa@webkit.org>
Make StyleBench compatible with run-benchmark and run-perf-tests
https://bugs.webkit.org/show_bug.cgi?id=182262
Reviewed by Antti Koivisto.
Copied resource files referenced from Speedometer directory since run-benchmark needs to be able
to checkout each benchmark separately.
Removed the code to create tests of the same name five times in makeSteps since this
won't be compatible with either run-benchmark or run-perf-tests.
* StyleBench/index.html: Removed the code to show warnings for local files since run-benchmark
doesn't use HTTP server in WebDriver mode.
* StyleBench/resources/benchmark-report.js: Copied from resources/benchmark-report.js.
* StyleBench/resources/benchmark-runner.js: Copied from resources/benchmark-runner.js.
(BenchmarkRunner.prototype._finalize): Use the correction factor of 8 instead of 5 in StyleBench.
* StyleBench/resources/gauge.png: Copied from resources/gauge.png.
* StyleBench/resources/gauge@2x.png: Copied from resources/gauge@2x.png.
* StyleBench/resources/main.css: Copied from resources/main.css.
* StyleBench/resources/main.js: Copied from resources/main.js.
* StyleBench/resources/tests.js:
(makeSteps): Only make each test once.
2018-01-26 Chris Nardi <cnardi@chromium.org>
Addressing post-review comments after r226614
https://bugs.webkit.org/show_bug.cgi?id=182151
Reviewed by Myles C. Maxfield.
* StitchMarker/wtf/text/StringImpl.h:
(WTF::isSpaceOrNewline):
* StitchMarker/wtf/text/TextBreakIterator.cpp:
(WTF::numCodeUnitsInGraphemeClusters):
* StitchMarker/wtf/text/TextBreakIterator.h:
2018-01-22 Antti Koivisto <antti@apple.com>
StyleBench: Separate test for :nth pseudo classes
https://bugs.webkit.org/show_bug.cgi?id=181932
Reviewed by Sam Weinig.
Optimization strategies for nth are different from other structural pseudo classes (:first-child etc). Move them to a separate test.
* StyleBench/resources/style-bench.js:
(structuralPseudoClassConfiguration):
(nthPseudoClassConfiguration):
Add a new configuration.
(predefinedConfigurations):
(pseudoClassConfiguration): Deleted.
2018-01-17 Ryosuke Niwa <rniwa@webkit.org>
Temporarily skip Speedometer until we fix the metrics.
* Skipped:
2018-01-16 Alex Christensen <achristensen@webkit.org>
Fix Mac CMake build after r222900
* MallocBench/MallocBench/CMakeLists.txt:
The mbmalloc target doesn't exist if we're not in developer mode, so only use it if we are.
2018-01-09 Ryosuke Niwa <rniwa@webkit.org>
Speedometer 2.0: Update the About page.
https://bugs.webkit.org/show_bug.cgi?id=175918
Reviewed by Keith Miller.
Updated the about page for Speedometer 2.0.
* Speedometer/index.html:
== Rolled over to ChangeLog-2018-01-01 ==