Benchmarks · Verified Telemetry
跨平台框架性能基准与架构对比
同一套业务场景(响应式状态管理 + 10,000 行虚拟列表 + 1,000 次服务调用)在 原生 GPU/自绘(Rust / C++)、现代主流全平台框架(C# AOT / Dart / Kotlin / RN) 与 Web 技术栈跨端方案(Lynx / Tauri 2.0 / Wails / Electron) 下的实测表现。
测试平台: Apple M3 Max (64GB, macOS 15.3 Metal) & Linux x86_64 (Wayland Vulkan, Ryzen 9 7950X) · 5 次冷运行中位数
01 · Footprint
Release 产物大小与起步物理内存 (RSS)
不依赖浏览器 WebView 的纯原生/GPU 自绘框架(Slint、GPUX、Qt 6、Iced/Makepad)通常在 15–35 MB 区间;.NET Native AOT 与 Flutter 在 35–70 MB;系统 WebView 与 JVM 方案在 70–150 MB;内置 Chromium 的 Electron 在 180–300+ MB。
Release 二进制体积 · Strip 后产物 (越低越好)
编译并 strip 后的可执行文件与必需运行时体积。
首屏常驻物理内存 RSS · 含所有子进程 (越低越好)
首屏渲染稳定 3 秒后,主进程与全部渲染/WebView 子进程驻留内存总和。
02 · Startup & Bridge Latency
首帧冷启动耗时与跨层调用延迟
从 execve 启动进程到首帧上屏耗时,以及 1,000 次顺序业务服务调用往返耗时。
冷启动首帧上屏时间 · Time to First Frame (越低越好)
原生 AOT 二进制直接初始化 GPU SwapChain,无需启动浏览器进程或重型虚拟机。
1,000 次顺序业务服务调用耗时 (越低越好)
单语言进程内直接调用 vs 跨语言 FFI/JSI 桥接 vs WebView IPC 序列化。
03 · Ecosystem Matrix
主流跨平台方案全景对照(按内存与渲染方式)
不同技术栈在编程语言、底层渲染管线、典型起步内存与目标平台覆盖上的取舍。
| 框架 | 编程语言 | 渲染方式 | 典型起步内存 | 覆盖范围与特点 |
|---|---|---|---|---|
| GPUX (GPUI) | Rust |
GPUI 硬件着色器自绘 (Metal / DX12 / Vulkan / XComponent / WebGPU) | 20 ~ 35 MB | 桌面 + 移动 + 鸿蒙 NEXT + Web (Wasm) + 小程序(8 端) |
| Slint / Iced / Makepad | Rust |
WGPU / Skia / 软光栅或着色器自绘 | 10 ~ 35 MB | 桌面 + 移动 + Web(Slint 额外支持嵌入式 MCU) |
| Qt 6 (Qt Quick / QML) | C++ / QML / Python / Rust |
Qt RHI 硬件加速场景图 / 原生绘制 | 20 ~ 50 MB | 桌面 + 移动 + 嵌入式(工业级成熟度高,开源需遵守 LGPL/GPL 或购买商业授权) |
| Avalonia UI / Uno / .NET MAUI | C# (.NET) |
Skia 自绘(Avalonia/Uno)或原生控件(MAUI) | 30 ~ 70 MB (Native AOT) | 桌面 + 移动 + Web Wasm(Avalonia 在 Linux 桌面端支持尤为完善) |
| Lynx | TS / React + C++ |
双线程架构 + 原生视图 / 自定义渲染管线 | 35 ~ 60 MB | Android + iOS + Web + 桌面端(前端技术栈,首屏直出快) |
| Flutter | Dart |
Impeller / Skia 自绘管线 | 50 ~ 70 MB | 桌面 + 移动 + Web(生态庞大,多端像素级一致) |
| React Native (+ Windows/macOS) | TypeScript / JS |
平台原生控件 + Hermes 引擎 (Fabric) | 50 ~ 100 MB | iOS + Android + Windows + macOS + Web(移动端生态极广) |
| Tauri 2.0 / Dioxus / Wails / Capacitor | Rust / Go + TS/Rust |
系统原生 WebView(Dioxus 另提供 WGPU/Blitz 原生后端) | 70 ~ 110 MB | Tauri 2.0 / Dioxus 覆盖桌面 + 移动;Wails 主打桌面三端;Capacitor 主打移动 |
| Compose Multiplatform (KMP) | Kotlin |
Skia 自绘(Android 端为原生 Jetpack Compose) | 80 ~ 150 MB (JVM) | 桌面 + 移动 + Web Wasm(JetBrains 官方支持,可按需只共享逻辑或共享 UI) |
| Electron | JS / TS |
内置完整 Chromium + Node.js | 180 ~ 300+ MB | 仅桌面三端(Win / Mac / Linux),不支持 iOS / Android |
04 · Methodology & Reproduction
本地复现基准测试
测试脚本与示例工程位于仓库中,可在本地直接编译测量:
# 1. 编译 Release 版本示例与 Benchmark 套件
cargo build --release -p gpux-counter
# 2. 查看 strip 后的二进制大小与测试耗时
ls -lh target/release/gpux-counter
cargo test --workspace --release -- --nocapture