返回

2023 新年开新章:基于 TypeScript 的 G6 助力可视化性能大幅提升

见解分享

G6 的性能痛点

作为图可视化框架,G6 所展示的数据一般具有数据量大、图元数量多、动态更新频繁的特点,而这些特性也带来了不小的性能挑战。Canvas 渲染作为 G6 最核心的渲染方式,在面对海量数据时难免力不从心,成为性能瓶颈。

G6 3.3-beta 的性能优化

为了解决 Canvas 渲染的性能瓶颈,G6 3.3-beta 对底层渲染引擎进行了全面升级,引入了一系列性能优化机制,包括:

局部渲染

局部渲染机制针对图的可视化特性进行了优化。在原先的渲染模式下,G6 会在每次数据更新时对整个画布进行重新渲染,这对于数据量大、图元数量多的场景来说,渲染开销非常大。而局部渲染机制只对发生变化的部分进行渲染,极大减少了不必要的渲染操作,提升了渲染效率。

自动渲染

自动渲染机制通过智能判断是否需要进行渲染,进一步提升了渲染效率。G6 3.3-beta 会根据数据的变化情况,自动判断是否需要进行渲染,避免了不必要的渲染操作。这对于动态更新频繁的场景来说,可以大幅减少渲染开销。

延迟渲染

延迟渲染机制则针对渲染时间进行了优化。在原先的渲染模式下,G6 会在数据更新后立即进行渲染,这对于频繁的小幅度数据更新来说,会造成频繁的渲染操作,影响性能。而延迟渲染机制会将小幅度的数据更新累积起来,在一定时间间隔后进行一次性渲染,减少了渲染频次,提升了渲染效率。

自动裁剪

自动裁剪机制则针对画布区域进行了优化。在原先的渲染模式下,G6 会对整个画布区域进行渲染,这对于只更新了部分区域的场景来说,会造成不必要的渲染开销。而自动裁剪机制会自动判断需要渲染的区域,只对该区域进行渲染,减少了不必要的渲染操作,提升了渲染效率。

性能测试结果

在实际的性能测试中,G6 3.3-beta 的性能表现令人惊叹。在数据量为 10 万条、图元数量为 100 万个的场景下,G6 3.3-beta 的渲染速度比 G6 3.2 提升了 50% 以上。在动态更新频繁的场景下,G6 3.3-beta 的渲染开销也大幅降低,确保了流畅、高效的交互体验。

总结

G6 3.3-beta 的性能优化机制为图可视化应用带来了质的提升,解决了 Canvas 渲染的性能瓶颈。通过局部渲染、自动渲染、延迟渲染及自动裁剪机制的加持,G6 3.3-beta 可以大幅提升数据量大、图元数量多、动态更新频繁的可视化应用性能。这对于需要处理海量数据的可视化场景来说,是一个福音。在 2023 年的新征程中,G6 将继续秉承创新精神,为开发者提供更强大、更易用的可视化解决方案。