NSGo

同样的应用,五个框架

三个小应用,按每个框架推荐的写法各实现一遍,以发布模式构建,在同一台机器上依次测量。

计数器

一个数字和两个按钮,打开后保持空闲:应用打开有多快,开着要花多少资源。

启动时间越低越好
  • NSGo285 ms
  • GPUI Kit292 ms
  • GPUI Fast309 ms
  • NSH324 ms
  • MyGo397 ms
内存越低越好
  • NSH21.3 MB
  • NSGo24.9 MB
  • MyGo31.9 MB
  • GPUI Kit36.7 MB
  • GPUI Fast37.1 MB
二进制体积越低越好
  • NSGo7.9 MB
  • MyGo10.2 MB
  • GPUI Kit15.0 MB
  • GPUI Fast16.6 MB
  • NSH33.0 MB
启动时间越低越好
  • NSGo161 ms
  • NSH161 ms
  • MyGo165 ms
  • GPUI Kit187 ms
  • GPUI Fast188 ms
内存越低越好
  • NSGo59.2 MB
  • NSH60.3 MB
  • GPUI Kit61.4 MB
  • MyGo62.7 MB
  • GPUI Fast63.5 MB
二进制体积越低越好
  • NSGo8.4 MB
  • MyGo11.0 MB
  • GPUI Kit19.0 MB
  • GPUI Fast21.4 MB
  • NSH45.4 MB
启动时间越低越好
  • NSGo81 ms
  • NSH90 ms
  • GPUI Kit96 ms
  • GPUI Fast97 ms
  • MyGo98 ms
内存越低越好
  • GPUI Kit39.2 MB
  • NSGo47.6 MB
  • NSH50.0 MB
  • GPUI Fast53.8 MB
  • MyGo70.5 MB
二进制体积越低越好
  • NSGo7.9 MB
  • MyGo10.5 MB
  • GPUI Kit38.7 MB
  • NSH40.1 MB
  • GPUI Fast41.1 MB

实时行情

40 行行情表,每个显示帧更新其中 10 行,每行 4 段文字。

CPU越低越好
  • GPUI Fast61.4%
  • NSH66.2%
  • MyGo66.6%
  • GPUI Kit72.2%
  • NSGo75.8%

应用合成器

以单核为 100%。原生视图把绘制交给系统合成器,而 GPU 渲染在应用自己的进程里绘制,所以每条都把合成器的 CPU 加在应用的之上。

内存越低越好
  • NSH36.7 MB
  • NSGo47.9 MB
  • GPUI Kit80.5 MB
  • MyGo84.6 MB
  • GPUI Fast85.1 MB
每秒帧数越高越好
  • NSGo120
  • MyGo120
  • NSH120
  • GPUI Kit120
  • GPUI Fast120

更新跟随显示器:跟得上的应用保持在屏幕刷新率。

CPU越低越好
  • MyGo127.2%
  • GPUI Fast141.1%
  • NSH157.8%
  • GPUI Kit164.2%
  • NSGo175.6%

应用合成器

以单核为 100%。原生视图把绘制交给系统合成器,而 GPU 渲染在应用自己的进程里绘制,所以每条都把合成器的 CPU 加在应用的之上。

内存越低越好
  • GPUI Kit67.2 MB
  • NSH68.3 MB
  • GPUI Fast71.1 MB
  • NSGo76.2 MB
  • MyGo87.8 MB
每秒帧数越高越好
  • NSH260
  • GPUI Kit260
  • GPUI Fast260
  • NSGo260
  • MyGo259

更新跟随显示器:跟得上的应用保持在屏幕刷新率。

CPU越低越好
  • GPUI Fast15.1%
  • MyGo15.6%
  • NSH19.4%
  • GPUI Kit21.2%
  • NSGo24.0%

应用合成器

以单核为 100%。原生视图把绘制交给系统合成器,而 GPU 渲染在应用自己的进程里绘制,所以每条都把合成器的 CPU 加在应用的之上。

内存越低越好
  • GPUI Kit54.8 MB
  • NSH55.5 MB
  • GPUI Fast59.3 MB
  • NSGo61.1 MB
  • MyGo93.3 MB
每秒帧数越高越好
  • NSGo60
  • MyGo60
  • NSH60
  • GPUI Kit60
  • GPUI Fast60

更新跟随显示器:跟得上的应用保持在屏幕刷新率。

滚动列表

10,000 行,每行一个圆点和两段文字,每个显示帧向下滚动一行。

CPU越低越好
  • NSH47.4%
  • GPUI Fast47.4%
  • NSGo52.3%
  • GPUI Kit53.7%
  • MyGo60.0%

应用合成器

以单核为 100%。原生视图把绘制交给系统合成器,而 GPU 渲染在应用自己的进程里绘制,所以每条都把合成器的 CPU 加在应用的之上。

内存越低越好
  • NSH31.3 MB
  • NSGo42.0 MB
  • MyGo67.9 MB
  • GPUI Kit69.3 MB
  • GPUI Fast75.4 MB
每秒帧数越高越好
  • NSGo120
  • MyGo120
  • NSH120
  • GPUI Kit120
  • GPUI Fast120

更新跟随显示器:跟得上的应用保持在屏幕刷新率。

CPU越低越好
  • MyGo134.7%
  • GPUI Fast137.4%
  • GPUI Kit137.7%
  • NSH148.7%
  • NSGo154.9%

应用合成器

以单核为 100%。原生视图把绘制交给系统合成器,而 GPU 渲染在应用自己的进程里绘制,所以每条都把合成器的 CPU 加在应用的之上。

内存越低越好
  • GPUI Kit63.3 MB
  • NSH64.9 MB
  • GPUI Fast70.5 MB
  • NSGo71.5 MB
  • MyGo77.2 MB
每秒帧数越高越好
  • NSGo260
  • NSH260
  • GPUI Kit260
  • GPUI Fast260
  • MyGo259

更新跟随显示器:跟得上的应用保持在屏幕刷新率。

CPU越低越好
  • GPUI Fast9.8%
  • GPUI Kit10.6%
  • NSH11.0%
  • MyGo11.2%
  • NSGo13.4%

应用合成器

以单核为 100%。原生视图把绘制交给系统合成器,而 GPU 渲染在应用自己的进程里绘制,所以每条都把合成器的 CPU 加在应用的之上。

内存越低越好
  • NSH52.1 MB
  • GPUI Kit52.6 MB
  • NSGo56.0 MB
  • GPUI Fast58.6 MB
  • MyGo85.9 MB
每秒帧数越高越好
  • NSGo61
  • MyGo60
  • NSH60
  • GPUI Kit60
  • GPUI Fast60

更新跟随显示器:跟得上的应用保持在屏幕刷新率。

2026年11月10日 测于 Apple M1 Max,内存 34.36 GB:取 3 次运行的中位数,每次 10 秒。

版本
NSGo 03896f1
MyGo v0.8.3
NSH 0.4.0
GPUI Kit gpui-kit 0.9.1, gpui-pre 0.3.12
GPUI Fast gpui-kit 0.9.1, gpui-fast 0.1.14

2026年11月10日 测于 Intel(R) Core(TM) Ultra 9 285K,内存 67.94 GB:取 3 次运行的中位数,每次 10 秒。

版本
NSGo 03896f1
MyGo v0.8.3
NSH 0.4.0
GPUI Kit gpui-kit 0.9.1, gpui-pre 0.3.12
GPUI Fast gpui-kit 0.9.1, gpui-fast 0.1.14

2026年11月10日 测于 AMD Ryzen 9 6900HX with Radeon Graphics,内存 31.25 GB:取 3 次运行的中位数,每次 10 秒。

版本
NSGo 03896f1
MyGo v0.8.3
NSH 0.4.0
GPUI Kit gpui-kit 0.9.1, gpui-pre 0.3.12
GPUI Fast gpui-kit 0.9.1, gpui-fast 0.1.14

各自能跑在哪里

NSGoMyGoNSHGPUI KitGPUI Fast
开发
语言Go、TSXGoRust、TSXRustRust
绘制方式原生视图自绘 GPU 渲染原生视图GPUI GPU 渲染GPUI GPU 渲染,增量保留
热重载——
运行时加载已签名的界面———
桌面
macOS
Windows
Linux
桌面之外
Web
iOS———
Android———
鸿蒙————
轻 App————
tvOS————
watchOS————
桌面小组件————
小程序
微信———
QQ————
支付宝————
抖音————

测量方法

  • 每个应用在第一帧打印一行,之后每秒打印更新了多少帧。测量程序从启动开始计时到第一行,并从系统读取进程的 CPU 时间和内存。
  • 启动时间是从启动二进制到第一帧。内存在每次运行结束时读取:macOS 为物理内存占用(footprint),Linux 为按比例分摊的常驻内存(PSS),Windows 为工作集。
  • CPU 在稳定 3 秒后测量 10 秒,各应用轮流运行。合成器在 macOS 是 WindowServer,Windows 是桌面窗口管理器(DWM),Linux 是 Wayland 合成器和 Xwayland,并扣除未打开任何测试应用时它自身的占用。
  • 均为发布构建:go build -ldflags "-s -w",以及去除符号的 cargo build --release。GPUI Kit 与 GPUI Fast 共用一份源码,分别基于上游 GPUI 和 GPUI Fast 构建。