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¶
- GitHub issue: https://github.com/fivetran/dataface/issues/117
Review Feedback¶
- Review cleared