Modified: branches/safari-611-branch/PerformanceTests/ChangeLog (273537 => 273538)
--- branches/safari-611-branch/PerformanceTests/ChangeLog 2021-02-26 02:52:05 UTC (rev 273537)
+++ branches/safari-611-branch/PerformanceTests/ChangeLog 2021-02-26 03:40:15 UTC (rev 273538)
@@ -1,3 +1,30 @@
+ 2021-02-25 Myles C. Maxfield <[email protected]>
+
+ Unreviewed, reverting r273390 and r273391.
+ 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/273390
+
+ "MotionMark scores are super sensitive to a single long frame"
+ https://bugs.webkit.org/show_bug.cgi?id=220847
+ https://trac.webkit.org/changeset/273391
+
+ * MotionMark/tests/resources/main.js:
+ (_measureAndResetInterval):
+ (update):
+ (start):
+ (didFinishInterval):
+ (filterOutOutliers): Deleted.
+ (registerFrameTime): Deleted.
+ (intervalHasConcluded): Deleted.
+
2021-02-23 Alan Coon <[email protected]>
Cherry-pick r273264. rdar://problem/74622873
Modified: branches/safari-611-branch/PerformanceTests/MotionMark/tests/resources/main.js (273537 => 273538)
--- branches/safari-611-branch/PerformanceTests/MotionMark/tests/resources/main.js 2021-02-26 02:52:05 UTC (rev 273537)
+++ branches/safari-611-branch/PerformanceTests/MotionMark/tests/resources/main.js 2021-02-26 03:40:15 UTC (rev 273538)
@@ -110,20 +110,6 @@
return comment in this._marks;
},
- filterOutOutliers: function(array)
- {
- if (array.length == 0)
- return [];
-
- array.sort();
- var q1 = array[Math.min(Math.round(array.length * 1 / 4), array.length - 1)];
- var q3 = array[Math.min(Math.round(array.length * 3 / 4), array.length - 1)];
- var interquartileRange = q3 - q1;
- var minimum = q1 - interquartileRange * 1.5;
- var maximum = q3 + interquartileRange * 1.5;
- return array.filter(x => x >= minimum && x <= maximum);
- },
-
_measureAndResetInterval: function(currentTimestamp)
{
var sampleCount = this._sampler.sampleCount;
@@ -130,13 +116,8 @@
var averageFrameLength = 0;
if (this._intervalEndTimestamp) {
- var durations = [];
- for (var i = Math.max(this._intervalStartIndex, 1); i < sampleCount; ++i) {
- durations.push(this._sampler.samples[0][i] - this._sampler.samples[0][i - 1]);
- }
- var filteredDurations = this.filterOutOutliers(durations);
- if (filteredDurations.length > 0)
- averageFrameLength = filteredDurations.reduce((a, b) => a + b, 0) / filteredDurations.length;
+ var intervalStartTimestamp = this._sampler.samples[0][this._intervalStartIndex];
+ averageFrameLength = (currentTimestamp - intervalStartTimestamp) / (sampleCount - this._intervalStartIndex);
}
this._intervalStartIndex = sampleCount;
@@ -157,19 +138,15 @@
this._frameLengthEstimator.sample(lastFrameLength);
frameLengthEstimate = this._frameLengthEstimator.estimate;
}
- } else {
- this.registerFrameTime(lastFrameLength);
- if (this.intervalHasConcluded(timestamp)) {
- var intervalStartTimestamp = this._sampler.samples[0][this._intervalStartIndex];
- intervalAverageFrameLength = this._measureAndResetInterval(timestamp);
- if (this._isFrameLengthEstimatorEnabled) {
- this._frameLengthEstimator.sample(intervalAverageFrameLength);
- frameLengthEstimate = this._frameLengthEstimator.estimate;
- }
- didFinishInterval = true;
- this.didFinishInterval(timestamp, stage, intervalAverageFrameLength);
- this._frameLengthEstimator.reset();
+ } else if (timestamp >= this._intervalEndTimestamp) {
+ var intervalStartTimestamp = this._sampler.samples[0][this._intervalStartIndex];
+ intervalAverageFrameLength = this._measureAndResetInterval(timestamp);
+ if (this._isFrameLengthEstimatorEnabled) {
+ this._frameLengthEstimator.sample(intervalAverageFrameLength);
+ frameLengthEstimate = this._frameLengthEstimator.estimate;
}
+ didFinishInterval = true;
+ this.didFinishInterval(timestamp, stage, intervalAverageFrameLength);
}
this._sampler.record(timestamp, stage.complexity(), frameLengthEstimate);
@@ -176,15 +153,6 @@
this.tune(timestamp, stage, lastFrameLength, didFinishInterval, intervalAverageFrameLength);
},
- registerFrameTime: function(lastFrameLength)
- {
- },
-
- intervalHasConcluded: function(timestamp)
- {
- return timestamp >= this._intervalEndTimestamp;
- },
-
didFinishInterval: function(timestamp, stage, intervalAverageFrameLength)
{
},
@@ -368,8 +336,6 @@
tierFastTestLength: 250,
// If the engine is under stress, let the test run a little longer to let the measurement settle
tierSlowTestLength: 750,
- // Tier intervals must have this number of non-outlier frames in order to end.
- numberOfFramesRequiredInInterval: 9,
rampWarmupLength: 200,
@@ -389,25 +355,10 @@
Controller.prototype.start.call(this, startTimestamp, stage);
this._rampStartTimestamp = 0;
this.intervalSamplingLength = 100;
- this._frameTimeHistory = [];
},
- registerFrameTime: function(lastFrameLength)
- {
- this._frameTimeHistory.push(lastFrameLength);
- },
-
- intervalHasConcluded: function(timestamp)
- {
- if (!Controller.prototype.intervalHasConcluded.call(this, timestamp))
- return false;
-
- return this._finishedTierSampling || this.filterOutOutliers(this._frameTimeHistory).length > this.numberOfFramesRequiredInInterval;
- },
-
didFinishInterval: function(timestamp, stage, intervalAverageFrameLength)
{
- this._frameTimeHistory = [];
if (!this._finishedTierSampling) {
if (this._tierStartTimestamp > 0 && timestamp < this._tierStartTimestamp + this.tierFastTestLength)
return;
Modified: branches/safari-611-branch/Tools/ChangeLog (273537 => 273538)
--- branches/safari-611-branch/Tools/ChangeLog 2021-02-26 02:52:05 UTC (rev 273537)
+++ branches/safari-611-branch/Tools/ChangeLog 2021-02-26 03:40:15 UTC (rev 273538)
@@ -1,3 +1,23 @@
+ 2021-02-25 Myles C. Maxfield <[email protected]>
+
+ Unreviewed, reverting r273390 and r273391.
+ 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/273390
+
+ "MotionMark scores are super sensitive to a single long frame"
+ https://bugs.webkit.org/show_bug.cgi?id=220847
+ https://trac.webkit.org/changeset/273391
+
+ * Scripts/webkitpy/benchmark_runner/data/plans/motionmark1.1.plan:
+
2021-02-25 Russell Epstein <[email protected]>
Cherry-pick r273314. rdar://problem/74753323
Modified: branches/safari-611-branch/Tools/Scripts/webkitpy/benchmark_runner/data/plans/motionmark1.1.plan (273537 => 273538)
--- branches/safari-611-branch/Tools/Scripts/webkitpy/benchmark_runner/data/plans/motionmark1.1.plan 2021-02-26 02:52:05 UTC (rev 273537)
+++ branches/safari-611-branch/Tools/Scripts/webkitpy/benchmark_runner/data/plans/motionmark1.1.plan 2021-02-26 03:40:15 UTC (rev 273538)
@@ -1,7 +1,7 @@
{
"timeout": 1800,
"count": 1,
- "svn_source": "https://svn.webkit.org/repository/webkit/trunk/PerformanceTests/MotionMark/@r273122",
+ "svn_source": "https://svn.webkit.org/repository/webkit/trunk/PerformanceTests/MotionMark/@r270959",
"webserver_benchmark_patch": "data/patches/webserver/MotionMark.patch",
"webdriver_benchmark_patch": "data/patches/webdriver/MotionMark.patch",
"entry_point": "index.html",