85 lines
2.8 KiB
JavaScript
85 lines
2.8 KiB
JavaScript
// Module ID: 5428
|
|
// Function ID: 5429
|
|
// Name: RenderTimeTracker
|
|
// Dependencies: [5429, 5430, 5434, 5435]
|
|
|
|
// Module 5428 (RenderTimeTracker)
|
|
import _classCallCheck from "_classCallCheck";
|
|
|
|
const RenderTimeTracker = arg1;
|
|
class RenderTimeTracker {
|
|
constructor() {
|
|
tmp = outer1_2(this, RenderTimeTracker);
|
|
averageWindow = new require("AverageWindow").AverageWindow(5);
|
|
this.renderTimeAvgWindow = averageWindow;
|
|
this.lastTimerStartedAt = -1;
|
|
this.maxRenderTime = 32;
|
|
this.defaultRenderTime = 16;
|
|
this.rendersWithoutCommit = 0;
|
|
this.maxRendersWithoutCommit = 40;
|
|
return;
|
|
}
|
|
}
|
|
const items = [
|
|
{
|
|
key: "startTracking",
|
|
value: function startTracking() {
|
|
const self = this;
|
|
this.rendersWithoutCommit = this.rendersWithoutCommit + 1;
|
|
let trackAverageRenderTimeForOffsetProjection = RenderTimeTracker(5435).PlatformConfig.trackAverageRenderTimeForOffsetProjection;
|
|
if (trackAverageRenderTimeForOffsetProjection) {
|
|
trackAverageRenderTimeForOffsetProjection = -1 === self.lastTimerStartedAt;
|
|
}
|
|
if (trackAverageRenderTimeForOffsetProjection) {
|
|
const _Date = Date;
|
|
self.lastTimerStartedAt = Date.now();
|
|
}
|
|
}
|
|
},
|
|
{
|
|
key: "markRenderComplete",
|
|
value: function markRenderComplete() {
|
|
const self = this;
|
|
this.rendersWithoutCommit = 0;
|
|
let trackAverageRenderTimeForOffsetProjection = RenderTimeTracker(5435).PlatformConfig.trackAverageRenderTimeForOffsetProjection;
|
|
if (trackAverageRenderTimeForOffsetProjection) {
|
|
trackAverageRenderTimeForOffsetProjection = -1 !== self.lastTimerStartedAt;
|
|
}
|
|
if (trackAverageRenderTimeForOffsetProjection) {
|
|
const renderTimeAvgWindow = self.renderTimeAvgWindow;
|
|
const _Date = Date;
|
|
renderTimeAvgWindow.addValue(Date.now() - self.lastTimerStartedAt);
|
|
self.lastTimerStartedAt = -1;
|
|
}
|
|
}
|
|
},
|
|
{
|
|
key: "hasExceededMaxRendersWithoutCommit",
|
|
value: function hasExceededMaxRendersWithoutCommit() {
|
|
return this.rendersWithoutCommit >= this.maxRendersWithoutCommit;
|
|
}
|
|
},
|
|
{
|
|
key: "getRawValue",
|
|
value: function getRawValue() {
|
|
return this.renderTimeAvgWindow.currentValue;
|
|
}
|
|
},
|
|
{
|
|
key: "getAverageRenderTime",
|
|
value: function getAverageRenderTime() {
|
|
const self = this;
|
|
if (RenderTimeTracker(5435).PlatformConfig.trackAverageRenderTimeForOffsetProjection) {
|
|
const _Math = Math;
|
|
const _Math2 = Math;
|
|
const _Math3 = Math;
|
|
let defaultRenderTime = Math.min(self.maxRenderTime, Math.max(Math.round(self.renderTimeAvgWindow.currentValue), 16));
|
|
} else {
|
|
defaultRenderTime = self.defaultRenderTime;
|
|
}
|
|
return defaultRenderTime;
|
|
}
|
|
}
|
|
];
|
|
|
|
export const RenderTimeTracker = require("_createClass")(RenderTimeTracker, items);
|