Changeset 290664 in webkit
- Timestamp:
- Mar 1, 2022, 11:38:24 AM (5 years ago)
- Location:
- trunk/PerformanceTests
- Files:
-
- 15 edited
-
ChangeLog (modified) (1 diff)
-
Speedometer/InteractiveRunner.html (modified) (1 diff)
-
Speedometer/index.html (modified) (2 diffs)
-
Speedometer/resources/benchmark-runner.js (modified) (2 diffs)
-
Speedometer/resources/todomvc/architecture-examples/angular/README.md (modified) (1 diff)
-
Speedometer/resources/todomvc/architecture-examples/angularjs/readme.md (modified) (1 diff)
-
Speedometer/resources/todomvc/architecture-examples/backbone/readme.md (modified) (1 diff)
-
Speedometer/resources/todomvc/architecture-examples/emberjs/README.md (modified) (1 diff)
-
Speedometer/resources/todomvc/architecture-examples/preact/README.md (modified) (1 diff)
-
Speedometer/resources/todomvc/architecture-examples/react-redux/README.md (modified) (1 diff)
-
Speedometer/resources/todomvc/architecture-examples/react/README.md (modified) (1 diff)
-
Speedometer/resources/todomvc/architecture-examples/vuejs-cli/README.md (modified) (1 diff)
-
Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/README.md (modified) (1 diff)
-
Speedometer/resources/todomvc/vanilla-examples/es2015/README.md (modified) (1 diff)
-
Speedometer/resources/todomvc/vanilla-examples/vanillajs/readme.md (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/PerformanceTests/ChangeLog
r290179 r290664 1 2022-03-01 Yusuke Suzuki <ysuzuki@apple.com> 2 3 Fix Speedometer's setTimeout throttling issue 4 https://bugs.webkit.org/show_bug.cgi?id=237303 5 rdar://89444976 6 7 Reviewed by Geoffrey Garen. 8 9 Speedometer is driving each test via setTimeout. Because we are using setTimeout to 10 measure async time in each subtest of Speedometer, our measurement included 4ms 11 throttle introduced due to nested setTimeout. This is happening in the test 12 harness (not test itself), and the intention of this test harness is not measuring 13 the throttle time. In this patch, we fix this nesting level propagation by inserting 14 window.requestAnimationFrame for each test run and BenchmarkRunner.prototype.waitForElement 15 so that we can reset nesting level count of setTimeout, which prevents the rendering 16 engine to insert 4ms throttle. 17 18 Since this affects on the score of async measurement, we bump the version number from 2.0 to 2.1 19 20 * Speedometer/InteractiveRunner.html: 21 * Speedometer/index.html: 22 * Speedometer/resources/benchmark-runner.js: 23 (resolveIfReady): 24 (BenchmarkRunner.prototype.waitForElement): 25 (BenchmarkRunner.prototype._runTest): 26 * Speedometer/resources/todomvc/architecture-examples/angular/README.md: 27 * Speedometer/resources/todomvc/architecture-examples/angularjs/readme.md: 28 * Speedometer/resources/todomvc/architecture-examples/backbone/readme.md: 29 * Speedometer/resources/todomvc/architecture-examples/emberjs/README.md: 30 * Speedometer/resources/todomvc/architecture-examples/preact/README.md: 31 * Speedometer/resources/todomvc/architecture-examples/react-redux/README.md: 32 * Speedometer/resources/todomvc/architecture-examples/react/README.md: 33 * Speedometer/resources/todomvc/architecture-examples/vuejs-cli/README.md: 34 * Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/README.md: 35 * Speedometer/resources/todomvc/vanilla-examples/es2015/README.md: 36 * Speedometer/resources/todomvc/vanilla-examples/vanillajs/readme.md: 37 1 38 2022-02-18 Robert Jenner <Jenner@apple.com> 2 39 -
trunk/PerformanceTests/Speedometer/InteractiveRunner.html
r222466 r290664 2 2 <html> 3 3 <head> 4 <title>Speedometer 2. 0Interactive Runner</title>4 <title>Speedometer 2.1 Interactive Runner</title> 5 5 <script src="resources/benchmark-runner.js" defer></script> 6 6 <script src="resources/tests.js" defer></script> -
trunk/PerformanceTests/Speedometer/index.html
r226694 r290664 3 3 <head> 4 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 5 <title>Speedometer 2. 0</title>5 <title>Speedometer 2.1</title> 6 6 <link rel="stylesheet" href="resources/main.css"> 7 7 <script src="resources/main.js" defer></script> … … 61 61 62 62 <section id="about"> 63 <h1>About Speedometer 2. 0</h1>63 <h1>About Speedometer 2.1</h1> 64 64 65 65 <p>Speedometer tests a browser's Web app responsiveness by timing simulated user interactions.</p> -
trunk/PerformanceTests/Speedometer/resources/benchmark-runner.js
r221659 r290664 50 50 function resolveIfReady() { 51 51 var element = contentDocument.querySelector(selector); 52 if (element) 53 return promise.resolve(element); 52 if (element) { 53 window.requestAnimationFrame(function () { 54 return promise.resolve(element); 55 }); 56 return; 57 } 54 58 setTimeout(resolveIfReady, 50); 55 59 } … … 143 147 self._frame.contentWindow._unusedHeightValue = height; // Prevent dead code elimination. 144 148 self._writeMark(suite.name + '.' + test.name + '-async-end'); 145 callback(syncTime, endTime - startTime, height); 149 window.requestAnimationFrame(function () { 150 callback(syncTime, endTime - startTime, height); 151 }); 146 152 }, 0); 147 153 } -
trunk/PerformanceTests/Speedometer/resources/todomvc/architecture-examples/angular/README.md
r219993 r290664 1 # Speedometer 2. 0: Angular 4 TodoMVC example1 # Speedometer 2.1: Angular 4 TodoMVC example 2 2 3 3 ## Test locally -
trunk/PerformanceTests/Speedometer/resources/todomvc/architecture-examples/angularjs/readme.md
r220801 r290664 1 # Speedometer 2. 0: Angular 1.6.5 TodoMVC example1 # Speedometer 2.1: Angular 1.6.5 TodoMVC example 2 2 3 3 ## Test locally -
trunk/PerformanceTests/Speedometer/resources/todomvc/architecture-examples/backbone/readme.md
r220800 r290664 1 # Speedometer 2. 0: Backbone.js TodoMVC example1 # Speedometer 2.1: Backbone.js TodoMVC example 2 2 3 3 ## Test locally -
trunk/PerformanceTests/Speedometer/resources/todomvc/architecture-examples/emberjs/README.md
r221206 r290664 1 # Speedometer 2. 0: Ember.js TodoMVC example1 # Speedometer 2.1: Ember.js TodoMVC example 2 2 3 3 ## Test locally -
trunk/PerformanceTests/Speedometer/resources/todomvc/architecture-examples/preact/README.md
r221121 r290664 1 # Speedometer 2. 0: Preact TodoMVC example1 # Speedometer 2.1: Preact TodoMVC example 2 2 3 3 ## Test locally -
trunk/PerformanceTests/Speedometer/resources/todomvc/architecture-examples/react-redux/README.md
r220899 r290664 1 # Speedometer 2. 0: React Redux TodoMVC example1 # Speedometer 2.1: React Redux TodoMVC example 2 2 3 3 ## Test locally -
trunk/PerformanceTests/Speedometer/resources/todomvc/architecture-examples/react/README.md
r221104 r290664 1 # Speedometer 2. 0: React TodoMVC example1 # Speedometer 2.1: React TodoMVC example 2 2 3 3 ## Test locally -
trunk/PerformanceTests/Speedometer/resources/todomvc/architecture-examples/vuejs-cli/README.md
r220900 r290664 1 # Speedometer 2. 0: Vue.js TodoMVC example1 # Speedometer 2.1: Vue.js TodoMVC example 2 2 3 3 ## Test locally -
trunk/PerformanceTests/Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/README.md
r219903 r290664 1 # Speedometer 2. 0: ES2015 + Babel + Webpack TodoMVC example1 # Speedometer 2.1: ES2015 + Babel + Webpack TodoMVC example 2 2 3 3 ## Test locally -
trunk/PerformanceTests/Speedometer/resources/todomvc/vanilla-examples/es2015/README.md
r220043 r290664 1 # Speedometer 2. 0: ES2015 TodoMVC example1 # Speedometer 2.1: ES2015 TodoMVC example 2 2 3 3 ## Test locally -
trunk/PerformanceTests/Speedometer/resources/todomvc/vanilla-examples/vanillajs/readme.md
r219251 r290664 1 # Speedometer 2. 0: Vanilla JavaScript TodoMVC example1 # Speedometer 2.1: Vanilla JavaScript TodoMVC example 2 2 3 3 ## Test locally
Note:
See TracChangeset
for help on using the changeset viewer.