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

Function updateStatsDom

examples/million-points/main.ts:443–475  ·  view source on GitHub ↗
(nowTs: number)

Source from the content-addressed store, hash-verified

441 let lastGpuMsText = '';
442
443 const updateStatsDom = (nowTs: number): void => {
444 if (nowTs - lastDomUpdateTs < 250) return;
445 lastDomUpdateTs = nowTs;
446
447 const avgDt = frameDtMs.mean();
448 const fps = avgDt > 0 ? 1000 / avgDt : 0;
449 const avgRender = renderMs.mean();
450 const avgGpu = gpuMs.mean();
451
452 const fpsText = fps > 0 ? fps.toFixed(1) : '—';
453 const renderText = avgRender > 0 ? avgRender.toFixed(2) : '—';
454 const gpuText = avgGpu > 0 ? avgGpu.toFixed(2) : '—';
455
456 const renderedPoints = estimateRenderedPoints(TOTAL_POINTS, zoomRange, samplingMode, DEFAULT_SAMPLING_THRESHOLD);
457 const renderedPointsText = formatInt(renderedPoints);
458
459 if (fpsText !== lastFpsText) {
460 lastFpsText = fpsText;
461 setText('fps', fpsText);
462 }
463 if (renderText !== lastRenderMsText) {
464 lastRenderMsText = renderText;
465 setText('renderTimeMs', renderText);
466 }
467 if (gpuText !== lastGpuMsText) {
468 lastGpuMsText = gpuText;
469 setText('gpuTimeMs', gpuText);
470 }
471 if (renderedPointsText !== lastRenderedPointsText) {
472 lastRenderedPointsText = renderedPointsText;
473 setText('renderedPointCount', renderedPointsText);
474 }
475 };
476
477 /**
478 * GPU timing probe via onSubmittedWorkDone: measures CPU→GPU→CPU latency, not pure GPU time.

Callers 1

renderFrameFunction · 0.85

Calls 3

estimateRenderedPointsFunction · 0.85
setTextFunction · 0.70
formatIntFunction · 0.50

Tested by

no test coverage detected