技术指标

性能指标

G6Lite 的可复现 Benchmark 入口、指标口径、环境记录与结果使用边界

G6Lite 使用仓库内统一的 Node 与浏览器 Benchmark 运行器验证性能链路。性能结果只在运行环境、数据规模、配置和采样模式一致时具有可比性;官网不使用缺少环境信息的绝对跑分或跨机器营销对比。

本页记录的是测量方法和选型边界,不表示 G6Lite 在所有数据、布局和设备上都快于其他图库。布局、纯渲染和交互更新必须分别比较。

运行入口

先安装依赖,然后在仓库根目录执行:

npm run benchmark -- --suite all --mode quick

参数含义:

  • --suite node:DataModel 与布局微基准。
  • --suite browser:公开 Graph API、首屏、交互、拾取和内存趋势。
  • --suite all:依次运行 Node 与浏览器套件。
  • --mode quick:用于本地和发布链路的快速验收。
  • --mode full:扩大数据档位与采样量,用于审核基线。

例如:

npm run benchmark -- --suite node --mode full
npm run benchmark -- --suite browser --mode full

命令会先构建 npm 包,再把 JSON 与 Markdown 报告写入 performance/。本地原始报告默认不提交;只有经过审核、环境可比的结果才进入 tests/perf/baselines/。

指标范围

Node 套件覆盖数据模型替换、位置与业务数据更新、状态切换、增删节点、邻居查询和布局计算。浏览器套件覆盖:

  • 批量更新节点位置和业务数据直到下一帧完成。
  • 批量状态更新、邻居与邻接边查询。
  • 首次渲染、布局耗时和不含布局的渲染耗时。
  • 拖拽与缩放帧率、P95 帧耗时和掉帧比例。
  • 拾取耗时、Highlight 延迟和销毁后的堆内存趋势。

报告中的内存变化是趋势信号,不等同于内存泄漏证明;垃圾回收时机、浏览器进程复用和显卡驱动都会影响结果。

环境要求

浏览器套件需要可用的 Chromium/Chrome 与 WebGL 硬件加速。公开或比较结果时至少记录:

  • G6Lite 版本、Git commit 与工作区是否干净。
  • Node、Chromium、操作系统和架构。
  • CPU 型号;浏览器结果还需记录 user agent、视口和 DPR。
  • 数据节点/边数量、布局、迭代次数与 quick/full 模式。
  • 样本量、RME 与运行器产生的 warning。

Benchmark 报告会自动写入大部分环境字段。不同环境的结果不应直接计算“提升百分比”。

当前公开口径

  • Quick 模式用于验证运行器、构建产物和关键路径可以完整执行,不作为营销基线。
  • 首页只展示 WebGL 1.0、内置布局能力与包体积预算等稳定事实。
  • 包体积由 size-limit 独立校验,详见 包体积。
  • 具体业务选型应使用真实数据和目标设备运行 full 模式,再结合 性能调优 分析瓶颈。

常用图库选型对比

产品定位摘要:G6Lite 聚焦轻量 WebGL 与渲染后的增量交互;G6 v5 提供更完整的元素、动画、插件和多环境能力;sigma.js 聚焦 Graphology 数据上的 WebGL 网络渲染;Cytoscape.js 同时提供图论模型、算法和交互式可视化。

逐项的渲染、布局、元素、Combo、交互、扩展、动画、算法、SSR 与 TypeScript 对比已集中到常用图库能力对比。本页只维护测量方法,避免两处能力矩阵随版本漂移。

选择时应先列出必须能力,再使用同一份业务数据验证候选方案。例如,sigma.js 使用已有坐标而 G6Lite 重新运行 force 布局时,首屏总耗时不能直接归因于渲染器;应分别记录布局时间和不含布局的渲染时间。

如何进行数值对比

  • 固定数据、坐标、节点/边样式、标签策略、视口、DPR、浏览器和硬件。
  • 预置坐标与重新布局分成两组结果,不能混在同一列。
  • 同时记录中位数、P95、样本量和误差,不用一次运行结果得出结论。
  • 除首屏外,至少验证拖拽、缩放、拾取、高亮、批量更新和销毁后的内存趋势。
  • 将候选库版本、适配代码和完整配置与报告一起留档,避免后续无法复现。

运行器实现与更完整说明位于仓库 tests/perf/README.md。