Hasty Briefsbeta

双语

We rewrote our custom visualisation renderers from SVG to be in Canvas

11 hours ago
  • #Data Visualization
  • #Web Development
  • #Performance Optimization
  • 新的分析器仪表板使用Canvas替代SVG来渲染火焰图,消除了每帧所需的DOM节点,减轻了浏览器的工作负担。
  • Canvas采用即时模式API,绘图命令直接生成像素,避免了SVG保持模式相关的样式、布局及垃圾回收开销。
  • 数据通过Arrow Flight的列式Arrow格式处理,支持零拷贝读取和高效渲染,通过直接访问数组来获取帧属性,如x位置、宽度和深度。
  • 渲染优化包括视窗裁剪以仅绘制可见帧和预计算位置,使缩放、滚动和重置交互操作感觉即时。
  • 性能改进显示Canvas渲染器在独立测试中速度提升约3.6倍,缩放和滚动等实时交互速度加快4-5倍,但可访问性和文本选择方面仍有待权衡。