| 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 == |