VegaProf: Profiling Vega Visualizations
Authors:
- Junran YangJYJunran Yang
- Alex BäuerleABAlex Bäuerle
- Dominik MoritzDMDominik Moritz
- Çağatay DemiralpÇDÇağatay Demiralp
Preprint
Abstract
Domain-specific languages (DSLs) for visualization aim to facilitate visualization creation by providing abstractions that offload implementation and execution details from users to the system layer. Therefore, DSLs often execute user-defined specifications by transforming them into intermediate representations (IRs) in successive lowering operations. However, DSL-specified visualizations can be difficult to profile and, hence, optimize due to the layered abstractions. To better understand visualization profiling workflows and challenges, we conduct formative interviews with visualization engineers who use Vega in production. Vega is a popular visualization DSL that transforms specifications into dataflow graphs, which are then executed to render visualization primitives. Our formative interviews reveal that current developer tools are ill-suited for visualization profiling since they are disconnected from the semantics of Vega's specification and its IRs at runtime. To address this gap, we introduce VegaProf, the first performance profiler for Vega visualizations. VegaProf instruments the Vega library by associating a declarative specification with its compilation and execution. Integrated into a Vega code playground, VegaProf coordinates visual performance inspection at three abstraction levels: function, dataflow graph, and visualization specification. We evaluate VegaProf through use cases and feedback from visualization engineers as well as original developers of the Vega library. Our results suggest that VegaProf makes visualization profiling more tractable and actionable by enabling users to interactively probe time performance across layered abstractions of Vega. Furthermore, we distill recommendations from our findings and advocate for co-designing visualization DSLs together with their introspection tools.Keywords
All Related Versions
This publication has 11 references indexed in Scilit:
- VizLinter: A Linter and Fixer Framework for Data VisualizationIEEE Transactions on Visualization and Computer Graphics, 2021
- Profiling dataflow systems on multiple abstraction levels | Proceedings of the Sixteenth European Conference on Computer Systems2021
- Engaging Pre-Service Teachers in Front-End Design: Developing Technology for a Social Studies Classroom2020
- Augmenting Code with In Situ Visualizations to Aid Program Understanding2018
- Vega-Lite: A Grammar of Interactive GraphicsIEEE Transactions on Visualization and Computer Graphics, 2016
- Reactive Vega: A Streaming Dataflow Architecture for Declarative Interactive VisualizationIEEE Transactions on Visualization and Computer Graphics, 2015
- Perfopticon: Visual Query Analysis for Distributed DatabasesComputer Graphics Forum, 2015
- D³ Data-Driven DocumentsIEEE Transactions on Visualization and Computer Graphics, 2011
- Cytoscape: A Software Environment for Integrated Models of Biomolecular Interaction NetworksGenome Research, 2003
- No Grammar to Rule Them All: A Survey of JSON-style DSLs for VisualizationIEEE Transactions on Visualization and Computer Graphics, 1912