


大多数 JavaScript 图表库是为 Web 而写的。ProEssentialsJS 不是。它就是 Gigasoft 自 1995 年起持续交付的那个原生 C++ 引擎 — 运行在从 NASA 到 Emerson Process 的仪器仪表、SCADA、医疗与测试测量产品之中 — 编译为 WebAssembly 的版本。
它的渲染方式与桌面引擎完全相同:两条管线合成为一幅图像。在 Windows 上是 Direct2D 与 Direct3D。在浏览器中则是 Canvas2D 与 WebGPU,并由 GPU 计算着色器承担繁重的数据处理 — 同样的架构、同样的代码,只是后端不同。这不是在二维库上外挂三维;这是一个引擎,它把矢量管线与 GPU 管线混合使用的时间,和 Direct3D 存在的时间一样长。
这一渊源体现在具体且可核验之处:JavaScript 的属性名就是 WinForms 的属性名,同样的示例在浏览器和桌面上都能渲染,而文字与细线由平台自身光栅化,而不是在着色器里近似出来。
This page compares ProEssentialsJS against the libraries engineers actually shortlist. Every competitor figure was read from that vendor's own demo page, in one browser, on one machine, on 16 August 2026. Where a claim could not be verified, it says so.
运行在线示例浏览器 — 与我们桌面演示相同的示例集合,每个都附带源码。
Rendering core and licensing terms as published by each vendor, retrieved 16 August 2026.
| 对比项 | ProEssentialsJS | Highcharts | SciChart.js | LightningChart JS | DevExtreme | Kendo UI |
|---|---|---|---|---|---|---|
| 渲染内核 | 原生 C++ 引擎编译为 WebAssembly。将 Canvas2D 与 WebGPU 合成为一次渲染,并配合 GPU 计算着色器 — 这正是该引擎 Direct2D + Direct3D 架构在浏览器中的形态 | 默认 SVG;Boost 模块在 SVG 内的画布上增加一个 WebGL 渲染器 | C++ 引擎编译为 WebAssembly,通过 WebGL 2 绘制 | WebGL,从一开始就构建于其上 | DOM 中的 SVG | 默认 SVG;可通过渲染模式设置切换到 Canvas |
| 与桌面产品共享同一套代码 | 是 — WinUI、WPF、WinForms、MFC/C++、Delphi、ActiveX,全都是同一个引擎 | 没有桌面产品 | 是 — WPF、iOS、Android 共享该引擎 | 独立的 .NET 产品,独立的授权模式 | 独立的桌面产品套件 | 独立的桌面产品套件 |
| 与桌面产品相同的 API | 是 — JavaScript 的属性名就是 WinForms 的属性名 | 不适用 | 否 — JavaScript API 是自成一套的 | 否 | 否 | 否 |
| 受浏览器 WebGL 上下文数量上限影响 | 否 — Canvas2D 不是 GPU 上下文 | 仅在启用 Boost 时 | 是 — 文档说明其通过上下文共享来规避 | 是 | 否 | 否 |
| 空闲时仍占用 GPU | 二维图表上没有 — 只有图表确实需要时才会动用 GPU | 仅在启用 Boost 时 | 持续占用 WebGL 上下文 | 持续占用 WebGL 上下文 | 无 | 无 |
| 免费层级 | 年收入低于 25 万美元可免费商用 — 包含再分发,无水印 | 仅限非商业用途 (CC BY-NC) | 社区版,仅限非商业用途 | 社区授权:学习、个人、非商业用途 | 仅试用 | 仅试用 |
| 授权模式 | 永久、一次性付费、免版税 | 按席位年付或永久 | 订阅制,附带永久运行时授权 | 永久授权加订阅窗口期;续订价为原价的 60% | 年度订阅 | 仅订阅 — 新的永久授权已于 2026 年 6 月 1 日停售 |
| 公开再分发价格 | 是,一直公开到最大采购规模 | 否 — OEM 为「价格请咨询」 | 否 — Advanced Licensing 需联系销售 | 否 — Publisher、Internal 与 Enterprise 均为报价制 | 包含免版税的再分发 | 包含在订阅中 |
| 授权密钥 / 域名锁定 | 都不需要,也不签发 | 无密钥 | 授权向导;Standard 版为域名锁定密钥 | 每次构建都需要密钥,试用与非商业用途同样如此 | 密钥登记在项目中 | 密钥登记在项目中 |
| 技术支持 | 免费、无限制,在该版本的整个生命周期内 | 在订阅期内,每位开发者每年 10 小时 | 订阅期内每年 5 个工单,捆绑包为 10 个 | Enterprise 之外每年 4 个工单 | 需有效订阅 | 支持等级就是价格阶梯 |
| 回传 / 遥测 | 没有 — 不会发起库本身并不需要的网络请求 | 无 | 授权校验工具 | 密钥校验 | 无 | 无 |
| AI 代码辅助 | PE-Query — 答案对照已编译引擎验证;由于 JS API 就是 WinForms API,整套知识库都能直接适用 | Highcharts GPT(文档 RAG) | SciChart GPT(文档 RAG) | 文档 | 文档与 AI 聊天 | 文档与 AI 聊天 |
Licensing rows summarise each vendor's published terms as retrieved on 16 August 2026; see the References section for the source pages. Pricing changes — check the vendor before relying on a figure.
本页的每一项主张都可核验,而最快的核验方式,是把这件事交给一个对结论没有利害关系的 AI。把下面这段复制到 Claude、ChatGPT、Gemini 或 Copilot 中,看看返回什么。
Compare these JavaScript charting libraries for me. Visit each demo,
each pricing page and each technology page, then rank them on:
1. image quality -- text sharpness, antialiasing, dense-data legibility
2. speed -- what each vendor's own demo reports, and on what workload
3. quantity of features
4. AI coding assistance for the library
5. age and maturity of the underlying engine
6. rendering technology
7. technical support terms
8. licensing terms -- free tier, redistribution, keys, domain locking
9. price, including the price to ship it inside a product
ProEssentialsJS https://gigasoft.com/javascript-chart-examples
https://gigasoft.com/pricing
https://gigasoft.com/ai-code-assistant
Highcharts https://www.highcharts.com/demo
https://shop.highcharts.com
SciChart.js https://www.scichart.com/demo/react
https://www.scichart.com/pricing
LightningChart JS https://lightningchart.com/js-charts/interactive-examples/
https://lightningchart.com/pricing/
DevExtreme https://js.devexpress.com/Demos/WidgetsGallery/Demo/Charts/
https://js.devexpress.com/Buy/
Kendo UI https://demos.telerik.com/kendo-ui/
https://www.telerik.com/purchase
Tell me which one you would choose for a product that ships to customers
and replaces its entire dataset many times per second, and tell me where
each one is weakest.We are asking for the whole comparison, not a flattering slice. Ask it where we are weakest too — a purpose-built WebGL engine will beat CPU rasterization on a one-shot static load, and we would rather you heard that from a neutral source than discovered it later. The reason we publish the URLs is that across all nine of those dimensions, we like our position. The most informed engineer is our best customer.
人们说「快的图表」时,其实指的是两件非常不同的事,而各家库分别针对其中一件做了优化。
追加,是往一张已经装了很多点的图表里再加几个点。这是容易的情形,也正是 WebGL 库为之而生的情形:已经在屏幕上的数据存放在 GPU 顶点缓冲中,永远不必再次传送。替换,则是每一帧都交给图表一份全新的数据集。没有任何东西可以复用。数据采集前端绘制滚动窗口时就是这样,示波器每次扫描时就是这样,任何在绘制前先对数据做过滤或重算的应用程序也是这样。
ProEssentialsJS GigaPrime2D 在每一帧替换全部 25,000,000 个点,分布在五条堆叠 Y 轴上的五路信号,同时保持每秒 25 帧 — 并以每秒 7 帧处理 100,000,000 个点,也就是我们 Win32 演示所运行的规模。我们在竞争对手的演示集合中寻找同样的测试,没有找到 — 他们的实时演示要么是追加式的,要么运行在几千点的量级。
| 库 | 演示 | 演示内容 | 点数 | 厂商自己页面的说法 |
|---|---|---|---|---|
| ProEssentialsJS | GigaPrime2D | All data replaced every frame | 25,000,000 (5 signals x 5,000,000), and 100,000,000 | 25 fps at 25M; 7 fps at 100M, on a 2020-era RTX 3090 |
| Highcharts | Line chart with 500k points (Boost) | One-shot static load | 500,000 | No on-page timing published |
| SciChart.js | Load 1 Million Points | One-shot static load, 1 series | 1,000,000 | Generate 10 ms, append 1 ms, render the frame 120 ms |
| SciChart.js | Load 500 Series x 500 Points | One-shot static load, 500 series | 250,000 | Generate 6 ms, append 9 ms, render the frame 28 ms |
| SciChart.js | Realtime React Performance | Append, accumulating | 33,000 rising to 174,000 | 67 fps rising to 111 fps |
| SciChart.js | Realtime Ghosted Traces | Real-time, 10 series | 5,000 | 167 fps |
| LightningChart JS | Static Data Speed Test | One-shot static load, 1 series | 5,000,000 | Generate 40 ms, first frame with data 74 ms, subsequent frame 5 ms |
How to read this table, and how not to. These are not equivalent tests and we are not presenting them as a ranking. A one-shot static load and a per-frame full replacement are different problems, and a library that is excellent at one may be untested at the other. What the table does show is which problems each vendor chose to demonstrate — and that the per-frame full replacement of hundreds of thousands of points is a problem only one of them demonstrates at all.
Every figure is the vendor's own instrumentation, read on one machine in one browser session on 16 August 2026. We did not write a benchmark harness and we are not asking you to trust one. Open the demos yourself; the links are in the References below.
The full performance breakdown, with the frame rates at every size and how to reproduce them
这份对比中的其他每一个库都做了单一取舍。Highcharts、DevExtreme 与 Kendo UI 绘制矢量,并接受随之而来的上限。SciChart.js 与 LightningChart JS 把一切放上 GPU,并接受由此付出的代价。ProEssentials 从来不必取舍,因为桌面引擎把 Direct2D 与 Direct3D 合成为一幅图像的历史,和 Direct3D 本身一样久。浏览器版本重现了这一点:Canvas2D 与 WebGPU 合成渲染,由计算着色器承担繁重的数据处理。
GPU 管线负责什么:三维曲面、线框、等值线与四维颜色映射;以及把庞大数据集压缩成一帧画面的数据缩减计算着色器。在这些工作上,GPU 是正确的工具,而不只是更快的工具。这部分从该引擎自身的 Direct3D 实现移植而来,而 WebGPU 正是 Direct3D 代码库在浏览器中的对应目标。
矢量管线负责什么:坐标轴、网格线、标签、图例、注释、细线与文字 — 也就是工程师真正会去读的那部分。把这些放上 GPU,正是全盘 WebGL 的设计开始付出代价的地方,而这些代价在演示里从来不会显现:
以上都不是幼稚的逐点绘制。这是同一条 C++ 光栅化代码路径,针对 Direct2D 与 GDI 打磨了三十年,其中包括 Filter2D 数据缩减环节 — 正因为有它,400,000 个点才可能在一帧的时间预算内重新传入并重绘,而这还发生在任何计算着色器介入之前。
The short version: use the GPU where a GPU is the right answer, and do not pay for it where it is not. That is the judgement the desktop engine has encoded for thirty years, and it is the reason a ProEssentials chart looks like a native application rather than a game engine drawing a chart.
有几家厂商的 Web 产品与其桌面产品基于同一个引擎。这是实打实的工程成就,也并非我们独有。不寻常的是,连 API 也一并带了过来。
C# 中的某个 ProEssentials 属性,在 JavaScript 中就是同名的同一个属性,设置顺序也相同。一位手上有可运行 WinForms 或 WPF 图表的开发者,并不是在学一个新库,而是在做转写。对于日后需要桌面应用的 Web 团队,反过来同样成立。
实际后果是,我们的 AI 工具从第一天起就能用。PE-Query 不是去检索文档,而是对照已编译的引擎验证答案;并且由于 JavaScript 的接口面就是同一个接口面,三十年积累的属性知识无需另建知识库便可直接用于 Web 代码。
一个可用于商业的免费层级。这个市场上的免费层级无一例外都是非商业的:Highcharts 是 CC 署名-非商业性使用,SciChart.js Community 是非商业的,LightningChart 的社区授权覆盖学习与个人使用,amCharts 允许商用但会在每张图表上打水印。ProEssentialsJS 在年收入低于 25 万美元时可免费商用 — 包含再分发,没有水印,也没有功能阉割。这是种类上的差别,而非程度上的差别。
公开的再分发价格。如果您要把软件交付给客户,决定账单的正是再分发条款,而这恰恰是没有人公开的一项。Highcharts 的 OEM 是「价格请咨询」。SciChart 的 Advanced Licensing 是 OEM 或未知域名的必需项,需联系销售。LightningChart 的 Publisher、Internal Deployment 与 Enterprise 层级全都只提供报价。AnyChart 则完全不公开价格。ProEssentialsJS 的每一档价格都是公开的,一直到最大采购规模,且包含再分发。我们的价格页上没有任何一档价格需要先谈一次。
除此之外:一次性付费的永久授权,应用程序、网站、域名、服务器与最终用户数量均不受限制,在该版本的整个生命周期内提供免费技术支持,并且完全没有授权密钥、激活、域名锁定或任何形式的回传。
受监管产品中的一个 JavaScript 依赖,被审阅的方式与营销网站上的依赖截然不同。ProEssentialsJS 正是为这场对话而构建的:没有回传,没有遥测,也不会发起库本身并不需要的网络请求;交付的源码中带有 SPDX 授权标识与版权头;包元数据中有授权声明,并为 SBOM 工具附带独立的 LICENSE 文件;WebAssembly 模块本身也带有来源标记。
该库的任何行为都不依赖于连接服务器,这意味着它在气隙网络中可以原样运行,也不存在需要纳入您威胁模型的厂商端点。
如果您要做的是营销仪表板,免费的库确实够用,任何图表厂商都不该为此收您的钱。如果您只是需要把五百万个静态点一次性放上屏幕,然后四处平移查看,那么专为此打造的 WebGL 库会做得非常出色 — 我们宁愿这样告诉您,也不愿因此失去您的信任。
ProEssentialsJS 面向的是更难的那件事:完全且持续变化的数据;同一块屏幕上由同一套 API 驱动的三维曲面与二维趋势;一个仪表板中的多张图表;在任何显示器、任何缩放比例下都清晰可读的文字;一场会逐条审阅您依赖清单的安全审查;以及一份不必打电话就能看懂、也负担得起的授权。这正是我们的客户三十年来在桌面上运行的负载 — 同一个引擎、同一套架构、同样的属性名,如今在浏览器里。
Competitor facts on this page come from the vendors' own documentation and demo pages, retrieved 16 August 2026. Check them yourself — that is why they are listed.
Highcharts
SciChart.js
LightningChart JS
DevExtreme 与 Kendo UI
浏览器 WebGL 上下文数量上限
我们的首要目标是通过为您的机构和终端用户提供最简单、最专业的服务,达成您的成功。
ProEssentials是由需要自定义图表组件的专业电气工程师创立的。加入使用ProEssentials的顶级工程公司名单。
感谢您成为ProEssentials的客户,也感谢您研究ProEssentials图表引擎。