WebKit Bugzilla
Attachment 342082 Details for
Bug 186257
: Allow the ramp controller to run tests that take less time than the initial ramp-up phase
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch
bug-186257-20180606144705.patch (text/plain), 4.04 KB, created by
Jon Lee
on 2018-06-06 14:47:06 PDT
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Jon Lee
Created:
2018-06-06 14:47:06 PDT
Size:
4.04 KB
patch
obsolete
>Subversion Revision: 232546 >diff --git a/PerformanceTests/ChangeLog b/PerformanceTests/ChangeLog >index 593b1c0ef92c87a840176021bb250f6587812ee1..9f66cd05af1d89abd0776c81d86fb93994020e4c 100644 >--- a/PerformanceTests/ChangeLog >+++ b/PerformanceTests/ChangeLog >@@ -1,3 +1,27 @@ >+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 NOBODY (OOPS!). >+ >+ * 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> > > Strip out more characters when creating permalinks >diff --git a/PerformanceTests/MotionMark/tests/resources/main.js b/PerformanceTests/MotionMark/tests/resources/main.js >index 093eb580e96ecc27e3fdeaad0edfc12c9ab17d2d..3db46a0cca13be13267c2a80bf2dfdd1396a805f 100644 >--- a/PerformanceTests/MotionMark/tests/resources/main.js >+++ b/PerformanceTests/MotionMark/tests/resources/main.js >@@ -341,6 +341,8 @@ RampController = Utilities.createSubclass(Controller, > this._minimumComplexity = 1; > this._maximumComplexity = 1; > >+ this._testLength = options["test-interval"]; >+ > // After the tier range is determined, figure out the number of ramp iterations > var minimumRampLength = 3000; > var totalRampIterations = Math.max(1, Math.floor(this._endTimestamp / minimumRampLength)); >@@ -404,6 +406,7 @@ RampController = Utilities.createSubclass(Controller, > this._lastTierFrameLength = currentFrameLength; > > this._tier += .5; >+ this._endTimestamp = timestamp + this._testLength; > var nextTierComplexity = Math.round(Math.pow(10, this._tier)); > stage.tune(nextTierComplexity - currentComplexity); > >@@ -421,7 +424,7 @@ RampController = Utilities.createSubclass(Controller, > this.intervalSamplingLength = 120; > > // Extend the test length so that the full test length is made of the ramps >- this._endTimestamp += timestamp; >+ this._endTimestamp = timestamp + this._testLength; > this.mark(Strings.json.samplingStartTimeOffset, timestamp); > > this._minimumComplexity = 1; >@@ -851,7 +854,7 @@ Benchmark = Utilities.createClass( > > get timestamp() > { >- return this._currentTimestamp - this._startTimestamp; >+ return this._currentTimestamp - this._benchmarkStartTimestamp; > }, > > backgroundColor: function() >@@ -895,7 +898,7 @@ Benchmark = Utilities.createClass( > this._previousTimestamp = timestamp; > else if (timestamp - this._previousTimestamp >= 100) { > this._didWarmUp = true; >- this._startTimestamp = timestamp; >+ this._benchmarkStartTimestamp = timestamp; > this._controller.start(timestamp, this._stage); > this._previousTimestamp = timestamp; > }
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 186257
:
341889
| 342082