Skip to content

Optimization: Batch Vega-Lite chart rendering for ~30% speedup

Problem

Dataface currently renders each Vega-Lite chart independently in its own subprocess or evaluation context, incurring repeated startup and teardown overhead for the Vega-Lite runtime on every chart. On dashboards with 10+ charts this serial rendering dominates total render time, making page loads noticeably slow. Batching multiple chart specs into a single rendering pass would amortize the runtime initialization cost and reduce IPC overhead, with profiling suggesting a roughly 30% improvement is achievable for typical multi-chart dashboards.

Context

Possible Solutions

Plan

  • Profile current render hot spots and establish baseline benchmark suite.
  • Implement batching strategy with bounded memory and failure handling.
  • Add benchmark automation and regression guard thresholds.
  • Run compatibility tests across chart types and mixed dashboard layouts.
  • Document tuning knobs and rollout plan for production adoption.

Implementation Progress

Review Feedback

  • Review cleared