stats-gl 2.4.1 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/main.cjs CHANGED
@@ -3,8 +3,9 @@ const panel = require("./panel.cjs");
3
3
  const _Stats = class _Stats2 {
4
4
  constructor({
5
5
  trackGPU = false,
6
- logsPerSecond = 20,
7
- samplesLog = 100,
6
+ logsPerSecond = 4,
7
+ graphsPerSecond = 30,
8
+ samplesLog = 40,
8
9
  samplesGraph = 10,
9
10
  precision = 2,
10
11
  minimal = false,
@@ -16,18 +17,22 @@ const _Stats = class _Stats2 {
16
17
  this.activeQuery = null;
17
18
  this.gpuQueries = [];
18
19
  this.threeRendererPatched = false;
19
- this.frames = 0;
20
+ this.frameTimes = [];
20
21
  this.renderCount = 0;
21
22
  this.isRunningCPUProfiling = false;
22
23
  this.totalCpuDuration = 0;
23
24
  this.totalGpuDuration = 0;
24
25
  this.totalGpuDurationCompute = 0;
25
- this.totalFps = 0;
26
26
  this.gpuPanel = null;
27
27
  this.gpuPanelCompute = null;
28
+ this.averageFps = { logs: [], graph: [] };
28
29
  this.averageCpu = { logs: [], graph: [] };
29
30
  this.averageGpu = { logs: [], graph: [] };
30
31
  this.averageGpuCompute = { logs: [], graph: [] };
32
+ this.updateCounter = 0;
33
+ this.lastMin = {};
34
+ this.lastMax = {};
35
+ this.lastValue = {};
31
36
  this.handleClick = (event) => {
32
37
  event.preventDefault();
33
38
  this.showPanel(++this.mode % this.dom.children.length);
@@ -48,10 +53,14 @@ const _Stats = class _Stats2 {
48
53
  this.samplesGraph = samplesGraph;
49
54
  this.precision = precision;
50
55
  this.logsPerSecond = logsPerSecond;
56
+ this.graphsPerSecond = graphsPerSecond;
57
+ const prevGraphTime = performance.now();
58
+ this.prevGraphTime = prevGraphTime;
51
59
  this.dom = document.createElement("div");
52
60
  this.initializeDOM();
53
61
  this.beginTime = performance.now();
54
62
  this.prevTime = this.beginTime;
63
+ this.prevTextTime = this.beginTime;
55
64
  this.prevCpuTime = this.beginTime;
56
65
  this.fpsPanel = this.addPanel(new _Stats2.Panel("FPS", "#0ff", "#002"), 0);
57
66
  this.msPanel = this.addPanel(new _Stats2.Panel("CPU", "#0f0", "#020"), 1);
@@ -166,31 +175,25 @@ const _Stats = class _Stats2 {
166
175
  }
167
176
  }
168
177
  update() {
178
+ if (this.isRunningCPUProfiling) {
179
+ this.endProfiling("cpu-started", "cpu-finished", "cpu-duration");
180
+ }
169
181
  if (!this.info) {
170
182
  this.processGpuQueries();
171
183
  } else {
172
184
  this.processWebGPUTimestamps();
173
185
  }
174
- this.endProfiling("cpu-started", "cpu-finished", "cpu-duration");
175
186
  this.updateAverages();
176
187
  this.resetCounters();
177
188
  }
178
189
  processWebGPUTimestamps() {
179
190
  this.totalGpuDuration = this.info.render.timestamp;
180
191
  this.totalGpuDurationCompute = this.info.compute.timestamp;
181
- this.addToAverage(this.totalGpuDurationCompute, this.averageGpuCompute);
182
- }
183
- updateAverages() {
184
- this.addToAverage(this.totalCpuDuration, this.averageCpu);
185
- this.addToAverage(this.totalGpuDuration, this.averageGpu);
186
192
  }
187
193
  resetCounters() {
188
194
  this.renderCount = 0;
189
- if (this.totalCpuDuration === 0) {
190
- this.beginProfiling("cpu-started");
191
- }
192
195
  this.totalCpuDuration = 0;
193
- this.totalFps = 0;
196
+ this.beginProfiling("cpu-started");
194
197
  this.beginTime = this.endInternal();
195
198
  }
196
199
  resizePanel(panel2, offset) {
@@ -241,32 +244,64 @@ const _Stats = class _Stats2 {
241
244
  });
242
245
  }
243
246
  endInternal() {
244
- this.frames++;
245
- const time = (performance || Date).now();
246
- if (time >= this.prevCpuTime + 1e3 / this.logsPerSecond) {
247
- this.updatePanel(this.msPanel, this.averageCpu);
248
- this.updatePanel(this.gpuPanel, this.averageGpu);
249
- if (this.gpuPanelCompute) {
250
- this.updatePanel(this.gpuPanelCompute, this.averageGpuCompute);
251
- }
252
- this.prevCpuTime = time;
247
+ const currentTime = performance.now();
248
+ this.frameTimes.push(currentTime);
249
+ while (this.frameTimes.length > 0 && this.frameTimes[0] <= currentTime - 1e3) {
250
+ this.frameTimes.shift();
251
+ }
252
+ const fps = Math.round(this.frameTimes.length);
253
+ this.addToAverage(fps, this.averageFps);
254
+ const shouldUpdateText = currentTime >= this.prevTextTime + 1e3 / this.logsPerSecond;
255
+ const shouldUpdateGraph = currentTime >= this.prevGraphTime + 1e3 / this.graphsPerSecond;
256
+ this.updatePanelComponents(this.fpsPanel, this.averageFps, 0, shouldUpdateText, shouldUpdateGraph);
257
+ this.updatePanelComponents(this.msPanel, this.averageCpu, this.precision, shouldUpdateText, shouldUpdateGraph);
258
+ if (this.gpuPanel) {
259
+ this.updatePanelComponents(this.gpuPanel, this.averageGpu, this.precision, shouldUpdateText, shouldUpdateGraph);
260
+ }
261
+ if (this.gpuPanelCompute) {
262
+ this.updatePanelComponents(this.gpuPanelCompute, this.averageGpuCompute, this.precision, shouldUpdateText, shouldUpdateGraph);
253
263
  }
254
- if (time >= this.prevTime + 1e3) {
255
- const fps = this.frames * 1e3 / (time - this.prevTime);
256
- this.fpsPanel.update(fps, fps, 100, 100, 0);
257
- this.prevTime = time;
258
- this.frames = 0;
264
+ if (shouldUpdateText) {
265
+ this.prevTextTime = currentTime;
259
266
  }
260
- return time;
267
+ if (shouldUpdateGraph) {
268
+ this.prevGraphTime = currentTime;
269
+ }
270
+ return currentTime;
261
271
  }
262
- addToAverage(value, averageArray) {
263
- averageArray.logs.push(value);
264
- if (averageArray.logs.length > this.samplesLog) {
265
- averageArray.logs.shift();
272
+ updatePanelComponents(panel2, averageArray, precision, shouldUpdateText, shouldUpdateGraph) {
273
+ if (!panel2 || averageArray.logs.length === 0)
274
+ return;
275
+ if (!(panel2.name in this.lastMin)) {
276
+ this.lastMin[panel2.name] = Infinity;
277
+ this.lastMax[panel2.name] = 0;
278
+ this.lastValue[panel2.name] = 0;
266
279
  }
267
- averageArray.graph.push(value);
268
- if (averageArray.graph.length > this.samplesGraph) {
269
- averageArray.graph.shift();
280
+ const currentValue = averageArray.logs[averageArray.logs.length - 1];
281
+ const recentMax = Math.max(...averageArray.logs.slice(-30));
282
+ this.lastMin[panel2.name] = Math.min(this.lastMin[panel2.name], currentValue);
283
+ this.lastMax[panel2.name] = Math.max(this.lastMax[panel2.name], currentValue);
284
+ this.lastValue[panel2.name] = this.lastValue[panel2.name] * 0.7 + currentValue * 0.3;
285
+ const graphMax = Math.max(recentMax, ...averageArray.graph.slice(-this.samplesGraph));
286
+ this.updateCounter++;
287
+ if (this.updateCounter % (this.logsPerSecond * 2) === 0) {
288
+ this.lastMax[panel2.name] = recentMax;
289
+ this.lastMin[panel2.name] = currentValue;
290
+ }
291
+ if (shouldUpdateText) {
292
+ panel2.update(
293
+ this.lastValue[panel2.name],
294
+ currentValue,
295
+ this.lastMax[panel2.name],
296
+ graphMax,
297
+ precision
298
+ );
299
+ }
300
+ if (shouldUpdateGraph) {
301
+ panel2.updateGraph(
302
+ currentValue,
303
+ graphMax
304
+ );
270
305
  }
271
306
  }
272
307
  beginProfiling(marker) {
@@ -283,29 +318,62 @@ const _Stats = class _Stats2 {
283
318
  this.isRunningCPUProfiling = false;
284
319
  }
285
320
  }
286
- updatePanel(panel2, averageArray) {
287
- if (averageArray.logs.length > 0) {
288
- let sumLog = 0;
289
- let max = 0.01;
290
- for (let i = 0; i < averageArray.logs.length; i++) {
291
- sumLog += averageArray.logs[i];
292
- if (averageArray.logs[i] > max) {
293
- max = averageArray.logs[i];
294
- }
295
- }
296
- let sumGraph = 0;
297
- let maxGraph = 0.01;
298
- for (let i = 0; i < averageArray.graph.length; i++) {
299
- sumGraph += averageArray.graph[i];
300
- if (averageArray.graph[i] > maxGraph) {
301
- maxGraph = averageArray.graph[i];
302
- }
321
+ updatePanel(panel2, averageArray, precision = 2) {
322
+ if (!panel2 || averageArray.logs.length === 0)
323
+ return;
324
+ const currentTime = performance.now();
325
+ if (!(panel2.name in this.lastMin)) {
326
+ this.lastMin[panel2.name] = Infinity;
327
+ this.lastMax[panel2.name] = 0;
328
+ this.lastValue[panel2.name] = 0;
329
+ }
330
+ const currentValue = averageArray.logs[averageArray.logs.length - 1];
331
+ const recentMax = Math.max(...averageArray.logs.slice(-30));
332
+ this.lastMin[panel2.name] = Math.min(this.lastMin[panel2.name], currentValue);
333
+ this.lastMax[panel2.name] = Math.max(this.lastMax[panel2.name], currentValue);
334
+ this.lastValue[panel2.name] = this.lastValue[panel2.name] * 0.7 + currentValue * 0.3;
335
+ const graphMax = Math.max(recentMax, ...averageArray.graph.slice(-this.samplesGraph));
336
+ this.updateCounter++;
337
+ if (this.updateCounter % (this.logsPerSecond * 2) === 0) {
338
+ this.lastMax[panel2.name] = recentMax;
339
+ this.lastMin[panel2.name] = currentValue;
340
+ }
341
+ if (panel2.update) {
342
+ if (currentTime >= this.prevCpuTime + 1e3 / this.logsPerSecond) {
343
+ panel2.update(
344
+ this.lastValue[panel2.name],
345
+ currentValue,
346
+ this.lastMax[panel2.name],
347
+ graphMax,
348
+ precision
349
+ );
303
350
  }
304
- if (panel2) {
305
- panel2.update(sumLog / Math.min(averageArray.logs.length, this.samplesLog), sumGraph / Math.min(averageArray.graph.length, this.samplesGraph), max, maxGraph, this.precision);
351
+ if (currentTime >= this.prevGraphTime + 1e3 / this.graphsPerSecond) {
352
+ panel2.updateGraph(
353
+ currentValue,
354
+ graphMax
355
+ );
356
+ this.prevGraphTime = currentTime;
306
357
  }
307
358
  }
308
359
  }
360
+ updateAverages() {
361
+ this.addToAverage(this.totalCpuDuration, this.averageCpu);
362
+ this.addToAverage(this.totalGpuDuration, this.averageGpu);
363
+ if (this.info && this.totalGpuDurationCompute !== void 0) {
364
+ this.addToAverage(this.totalGpuDurationCompute, this.averageGpuCompute);
365
+ }
366
+ }
367
+ addToAverage(value, averageArray) {
368
+ averageArray.logs.push(value);
369
+ if (averageArray.logs.length > this.samplesLog) {
370
+ averageArray.logs = averageArray.logs.slice(-this.samplesLog);
371
+ }
372
+ averageArray.graph.push(value);
373
+ if (averageArray.graph.length > this.samplesGraph) {
374
+ averageArray.graph = averageArray.graph.slice(-this.samplesGraph);
375
+ }
376
+ }
309
377
  get domElement() {
310
378
  return this.dom;
311
379
  }
package/dist/main.cjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"main.cjs","sources":["../lib/main.ts"],"sourcesContent":null,"names":["_Stats","panel","Panel"],"mappings":"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"}
1
+ {"version":3,"file":"main.cjs","sources":["../lib/main.ts"],"sourcesContent":null,"names":["_Stats","panel","Panel"],"mappings":"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"}
package/dist/main.js CHANGED
@@ -2,8 +2,9 @@ import { Panel } from "./panel.js";
2
2
  const _Stats = class _Stats2 {
3
3
  constructor({
4
4
  trackGPU = false,
5
- logsPerSecond = 20,
6
- samplesLog = 100,
5
+ logsPerSecond = 4,
6
+ graphsPerSecond = 30,
7
+ samplesLog = 40,
7
8
  samplesGraph = 10,
8
9
  precision = 2,
9
10
  minimal = false,
@@ -15,18 +16,22 @@ const _Stats = class _Stats2 {
15
16
  this.activeQuery = null;
16
17
  this.gpuQueries = [];
17
18
  this.threeRendererPatched = false;
18
- this.frames = 0;
19
+ this.frameTimes = [];
19
20
  this.renderCount = 0;
20
21
  this.isRunningCPUProfiling = false;
21
22
  this.totalCpuDuration = 0;
22
23
  this.totalGpuDuration = 0;
23
24
  this.totalGpuDurationCompute = 0;
24
- this.totalFps = 0;
25
25
  this.gpuPanel = null;
26
26
  this.gpuPanelCompute = null;
27
+ this.averageFps = { logs: [], graph: [] };
27
28
  this.averageCpu = { logs: [], graph: [] };
28
29
  this.averageGpu = { logs: [], graph: [] };
29
30
  this.averageGpuCompute = { logs: [], graph: [] };
31
+ this.updateCounter = 0;
32
+ this.lastMin = {};
33
+ this.lastMax = {};
34
+ this.lastValue = {};
30
35
  this.handleClick = (event) => {
31
36
  event.preventDefault();
32
37
  this.showPanel(++this.mode % this.dom.children.length);
@@ -47,10 +52,14 @@ const _Stats = class _Stats2 {
47
52
  this.samplesGraph = samplesGraph;
48
53
  this.precision = precision;
49
54
  this.logsPerSecond = logsPerSecond;
55
+ this.graphsPerSecond = graphsPerSecond;
56
+ const prevGraphTime = performance.now();
57
+ this.prevGraphTime = prevGraphTime;
50
58
  this.dom = document.createElement("div");
51
59
  this.initializeDOM();
52
60
  this.beginTime = performance.now();
53
61
  this.prevTime = this.beginTime;
62
+ this.prevTextTime = this.beginTime;
54
63
  this.prevCpuTime = this.beginTime;
55
64
  this.fpsPanel = this.addPanel(new _Stats2.Panel("FPS", "#0ff", "#002"), 0);
56
65
  this.msPanel = this.addPanel(new _Stats2.Panel("CPU", "#0f0", "#020"), 1);
@@ -165,31 +174,25 @@ const _Stats = class _Stats2 {
165
174
  }
166
175
  }
167
176
  update() {
177
+ if (this.isRunningCPUProfiling) {
178
+ this.endProfiling("cpu-started", "cpu-finished", "cpu-duration");
179
+ }
168
180
  if (!this.info) {
169
181
  this.processGpuQueries();
170
182
  } else {
171
183
  this.processWebGPUTimestamps();
172
184
  }
173
- this.endProfiling("cpu-started", "cpu-finished", "cpu-duration");
174
185
  this.updateAverages();
175
186
  this.resetCounters();
176
187
  }
177
188
  processWebGPUTimestamps() {
178
189
  this.totalGpuDuration = this.info.render.timestamp;
179
190
  this.totalGpuDurationCompute = this.info.compute.timestamp;
180
- this.addToAverage(this.totalGpuDurationCompute, this.averageGpuCompute);
181
- }
182
- updateAverages() {
183
- this.addToAverage(this.totalCpuDuration, this.averageCpu);
184
- this.addToAverage(this.totalGpuDuration, this.averageGpu);
185
191
  }
186
192
  resetCounters() {
187
193
  this.renderCount = 0;
188
- if (this.totalCpuDuration === 0) {
189
- this.beginProfiling("cpu-started");
190
- }
191
194
  this.totalCpuDuration = 0;
192
- this.totalFps = 0;
195
+ this.beginProfiling("cpu-started");
193
196
  this.beginTime = this.endInternal();
194
197
  }
195
198
  resizePanel(panel, offset) {
@@ -240,32 +243,64 @@ const _Stats = class _Stats2 {
240
243
  });
241
244
  }
242
245
  endInternal() {
243
- this.frames++;
244
- const time = (performance || Date).now();
245
- if (time >= this.prevCpuTime + 1e3 / this.logsPerSecond) {
246
- this.updatePanel(this.msPanel, this.averageCpu);
247
- this.updatePanel(this.gpuPanel, this.averageGpu);
248
- if (this.gpuPanelCompute) {
249
- this.updatePanel(this.gpuPanelCompute, this.averageGpuCompute);
250
- }
251
- this.prevCpuTime = time;
246
+ const currentTime = performance.now();
247
+ this.frameTimes.push(currentTime);
248
+ while (this.frameTimes.length > 0 && this.frameTimes[0] <= currentTime - 1e3) {
249
+ this.frameTimes.shift();
250
+ }
251
+ const fps = Math.round(this.frameTimes.length);
252
+ this.addToAverage(fps, this.averageFps);
253
+ const shouldUpdateText = currentTime >= this.prevTextTime + 1e3 / this.logsPerSecond;
254
+ const shouldUpdateGraph = currentTime >= this.prevGraphTime + 1e3 / this.graphsPerSecond;
255
+ this.updatePanelComponents(this.fpsPanel, this.averageFps, 0, shouldUpdateText, shouldUpdateGraph);
256
+ this.updatePanelComponents(this.msPanel, this.averageCpu, this.precision, shouldUpdateText, shouldUpdateGraph);
257
+ if (this.gpuPanel) {
258
+ this.updatePanelComponents(this.gpuPanel, this.averageGpu, this.precision, shouldUpdateText, shouldUpdateGraph);
259
+ }
260
+ if (this.gpuPanelCompute) {
261
+ this.updatePanelComponents(this.gpuPanelCompute, this.averageGpuCompute, this.precision, shouldUpdateText, shouldUpdateGraph);
252
262
  }
253
- if (time >= this.prevTime + 1e3) {
254
- const fps = this.frames * 1e3 / (time - this.prevTime);
255
- this.fpsPanel.update(fps, fps, 100, 100, 0);
256
- this.prevTime = time;
257
- this.frames = 0;
263
+ if (shouldUpdateText) {
264
+ this.prevTextTime = currentTime;
258
265
  }
259
- return time;
266
+ if (shouldUpdateGraph) {
267
+ this.prevGraphTime = currentTime;
268
+ }
269
+ return currentTime;
260
270
  }
261
- addToAverage(value, averageArray) {
262
- averageArray.logs.push(value);
263
- if (averageArray.logs.length > this.samplesLog) {
264
- averageArray.logs.shift();
271
+ updatePanelComponents(panel, averageArray, precision, shouldUpdateText, shouldUpdateGraph) {
272
+ if (!panel || averageArray.logs.length === 0)
273
+ return;
274
+ if (!(panel.name in this.lastMin)) {
275
+ this.lastMin[panel.name] = Infinity;
276
+ this.lastMax[panel.name] = 0;
277
+ this.lastValue[panel.name] = 0;
265
278
  }
266
- averageArray.graph.push(value);
267
- if (averageArray.graph.length > this.samplesGraph) {
268
- averageArray.graph.shift();
279
+ const currentValue = averageArray.logs[averageArray.logs.length - 1];
280
+ const recentMax = Math.max(...averageArray.logs.slice(-30));
281
+ this.lastMin[panel.name] = Math.min(this.lastMin[panel.name], currentValue);
282
+ this.lastMax[panel.name] = Math.max(this.lastMax[panel.name], currentValue);
283
+ this.lastValue[panel.name] = this.lastValue[panel.name] * 0.7 + currentValue * 0.3;
284
+ const graphMax = Math.max(recentMax, ...averageArray.graph.slice(-this.samplesGraph));
285
+ this.updateCounter++;
286
+ if (this.updateCounter % (this.logsPerSecond * 2) === 0) {
287
+ this.lastMax[panel.name] = recentMax;
288
+ this.lastMin[panel.name] = currentValue;
289
+ }
290
+ if (shouldUpdateText) {
291
+ panel.update(
292
+ this.lastValue[panel.name],
293
+ currentValue,
294
+ this.lastMax[panel.name],
295
+ graphMax,
296
+ precision
297
+ );
298
+ }
299
+ if (shouldUpdateGraph) {
300
+ panel.updateGraph(
301
+ currentValue,
302
+ graphMax
303
+ );
269
304
  }
270
305
  }
271
306
  beginProfiling(marker) {
@@ -282,29 +317,62 @@ const _Stats = class _Stats2 {
282
317
  this.isRunningCPUProfiling = false;
283
318
  }
284
319
  }
285
- updatePanel(panel, averageArray) {
286
- if (averageArray.logs.length > 0) {
287
- let sumLog = 0;
288
- let max = 0.01;
289
- for (let i = 0; i < averageArray.logs.length; i++) {
290
- sumLog += averageArray.logs[i];
291
- if (averageArray.logs[i] > max) {
292
- max = averageArray.logs[i];
293
- }
294
- }
295
- let sumGraph = 0;
296
- let maxGraph = 0.01;
297
- for (let i = 0; i < averageArray.graph.length; i++) {
298
- sumGraph += averageArray.graph[i];
299
- if (averageArray.graph[i] > maxGraph) {
300
- maxGraph = averageArray.graph[i];
301
- }
320
+ updatePanel(panel, averageArray, precision = 2) {
321
+ if (!panel || averageArray.logs.length === 0)
322
+ return;
323
+ const currentTime = performance.now();
324
+ if (!(panel.name in this.lastMin)) {
325
+ this.lastMin[panel.name] = Infinity;
326
+ this.lastMax[panel.name] = 0;
327
+ this.lastValue[panel.name] = 0;
328
+ }
329
+ const currentValue = averageArray.logs[averageArray.logs.length - 1];
330
+ const recentMax = Math.max(...averageArray.logs.slice(-30));
331
+ this.lastMin[panel.name] = Math.min(this.lastMin[panel.name], currentValue);
332
+ this.lastMax[panel.name] = Math.max(this.lastMax[panel.name], currentValue);
333
+ this.lastValue[panel.name] = this.lastValue[panel.name] * 0.7 + currentValue * 0.3;
334
+ const graphMax = Math.max(recentMax, ...averageArray.graph.slice(-this.samplesGraph));
335
+ this.updateCounter++;
336
+ if (this.updateCounter % (this.logsPerSecond * 2) === 0) {
337
+ this.lastMax[panel.name] = recentMax;
338
+ this.lastMin[panel.name] = currentValue;
339
+ }
340
+ if (panel.update) {
341
+ if (currentTime >= this.prevCpuTime + 1e3 / this.logsPerSecond) {
342
+ panel.update(
343
+ this.lastValue[panel.name],
344
+ currentValue,
345
+ this.lastMax[panel.name],
346
+ graphMax,
347
+ precision
348
+ );
302
349
  }
303
- if (panel) {
304
- panel.update(sumLog / Math.min(averageArray.logs.length, this.samplesLog), sumGraph / Math.min(averageArray.graph.length, this.samplesGraph), max, maxGraph, this.precision);
350
+ if (currentTime >= this.prevGraphTime + 1e3 / this.graphsPerSecond) {
351
+ panel.updateGraph(
352
+ currentValue,
353
+ graphMax
354
+ );
355
+ this.prevGraphTime = currentTime;
305
356
  }
306
357
  }
307
358
  }
359
+ updateAverages() {
360
+ this.addToAverage(this.totalCpuDuration, this.averageCpu);
361
+ this.addToAverage(this.totalGpuDuration, this.averageGpu);
362
+ if (this.info && this.totalGpuDurationCompute !== void 0) {
363
+ this.addToAverage(this.totalGpuDurationCompute, this.averageGpuCompute);
364
+ }
365
+ }
366
+ addToAverage(value, averageArray) {
367
+ averageArray.logs.push(value);
368
+ if (averageArray.logs.length > this.samplesLog) {
369
+ averageArray.logs = averageArray.logs.slice(-this.samplesLog);
370
+ }
371
+ averageArray.graph.push(value);
372
+ if (averageArray.graph.length > this.samplesGraph) {
373
+ averageArray.graph = averageArray.graph.slice(-this.samplesGraph);
374
+ }
375
+ }
308
376
  get domElement() {
309
377
  return this.dom;
310
378
  }
package/dist/main.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"main.js","sources":["../lib/main.ts"],"sourcesContent":null,"names":["_Stats"],"mappings":"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"}
1
+ {"version":3,"file":"main.js","sources":["../lib/main.ts"],"sourcesContent":null,"names":["_Stats"],"mappings":"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"}