MCPcopy Index your code
hub / github.com/ChartGPU/ChartGPU / updateMetricsDisplay

Function updateMetricsDisplay

examples/worker-rendering/main.ts:446–496  ·  view source on GitHub ↗
(metrics: PerformanceMetrics)

Source from the content-addressed store, hash-verified

444}
445
446function updateMetricsDisplay(metrics: PerformanceMetrics): void {
447 // FPS Display with color coding
448 const fps = metrics.fps;
449 const fpsEl = document.getElementById('fpsDisplay');
450 if (fpsEl) {
451 fpsEl.textContent = fps.toFixed(1);
452
453 // Update quality indicator
454 if (fps > FPS_SMOOTH_THRESHOLD) {
455 fpsEl.setAttribute('data-quality', 'smooth');
456 } else if (fps > FPS_MEDIUM_THRESHOLD) {
457 fpsEl.setAttribute('data-quality', 'medium');
458 } else {
459 fpsEl.setAttribute('data-quality', 'choppy');
460 }
461 }
462
463 // Frame Time Stats
464 const ft = metrics.frameTimeStats;
465 setElementText(
466 'frameTimeDisplay',
467 `${ft.min.toFixed(1)} / ${ft.avg.toFixed(1)} / ${ft.max.toFixed(1)} / ${ft.p95.toFixed(1)} / ${ft.p99.toFixed(1)} ms`
468 );
469
470 // Memory Stats
471 if (metrics.memory.used > 0) {
472 setElementText(
473 'memoryDisplay',
474 `${formatBytes(metrics.memory.used)} / ${formatBytes(metrics.memory.peak)}`
475 );
476 } else {
477 setElementText('memoryDisplay', 'N/A');
478 }
479
480 // Frame Drops
481 setElementText(
482 'frameDropsDisplay',
483 `${metrics.frameDrops.totalDrops} / ${metrics.frameDrops.consecutiveDrops}`
484 );
485
486 // Total Frames
487 setElementText('totalFramesDisplay', formatNumber(metrics.totalFrames));
488
489 // Elapsed Time
490 setElementText('elapsedDisplay', formatDuration(metrics.elapsedTime));
491
492 // Update frame time graph
493 if (frameGraph) {
494 frameGraph.addFrame(ft.avg);
495 }
496}
497
498function clearMetricsDisplay(): void {
499 setElementText('fpsDisplay', '--');

Callers 1

handleGenerateFunction · 0.85

Calls 5

setElementTextFunction · 0.85
formatBytesFunction · 0.85
formatDurationFunction · 0.85
addFrameMethod · 0.80
formatNumberFunction · 0.70

Tested by

no test coverage detected