为什么你的浏览器基准测试在欺骗你关于 AI 性能的结果

发布: (2026年2月3日 GMT+8 15:58)
8 分钟阅读
原文: Dev.to

Source: Dev.to

从 “Document Web” 到 “Compute Web” 的转变

多年来,我们一直通过延迟的视角来衡量网页性能:

  • 这个脚本加载得有多快?
  • 引擎执行这段单循环的速度有多快?

然而,Document Web 已不再活跃。我们现在正处于 Compute Web 时代——浏览器需要能够:

  • 本地运行 AI 推理
  • 处理海量数据流
  • 同时处理复杂的 UI 状态

传统的基准测试就像通过检查单个活塞的速度来测试一台 16 缸发动机。它们并不能告诉你发动机在实际负载下的表现。

为什么现有基准测试不足

大多数基准测试(例如 JetStream、Speedometer)侧重于 顺序执行。虽然它们非常适合衡量 JavaScript 引擎的成熟度和整体浏览器性能,但却未能考虑 任务饱和度

在现代 AI 驱动的网页应用中,峰值性能完全取决于浏览器如何高效地编排 并发、资源密集型任务,例如:

类别示例
CPU 密集型工作在 Web Worker 中预处理大型数据集或 50 MB JSON 负载
GPU 密集型工作使用 WebGPU 运行本地 AI 推理模型
主线程工作将 UI 响应保持在 60 fps

真正的瓶颈往往是 这些组件之间的交接与调度,而不是任何单一组件的原始速度。仅关注孤立变量(例如原始 GPU 速度)无法捕捉在真实世界条件下应用的 终极性能

介绍 SpeedPower.run

ScaleDynamics,我们观察到 CPU 与 GPU 之间的交接是 AI 驱动的网页应用的主要瓶颈。对合成的、脱节的基准测试感到沮丧,我们构建了 SpeedPower.run——现代网页上真实计算性能的权威基准。

同时负载方法论

SpeedPower.run 通过 同时将所有 CPU 和 GPU 推至极限 来确定浏览器和设备的最大性能。

  • 并发任务:在进行大量 JavaScript 处理的同时运行 AI 推理。
  • 使用的技术:JavaScript、WASM、WebGL、WebGPU。

确保公平得分(方法论与完整性)

  1. 零网络干扰——计时器仅在所有大型资源(≈ 400 MB 的 AI 模型)加载到内存后才开始。
  2. 热身执行阶段——在记录最终得分前,让浏览器完成内部优化(如代码编译)。
  3. 得分稳定性——对峰值指标进行统计回归分析,平滑系统级调度噪声,产生可靠的结果,而非单一时刻的快照。
  4. 用户指引——多次运行测试以获取可能的最高分,因为操作系统层面的因素会影响性能。

核心基准

1. JavaScript

衡量对 JS 对象和 JSON 进行前后处理的原始计算能力。

  • 使用 Apple/WebKit JetStream 2 套件中的四个测试:
    • Access Binary Trees
    • Control Flow Recursive
    • Regexp DNA
    • String Tag Cloud
  • 在多个 Web Worker 中并行运行这些基准测试,以评估最大多核 CPU 处理能力。

2. AI with TensorFlow.js

AI 识别 (TFJS)

  • Model: BlazeFace
  • Input: 128 × 128 张量,预热图
  • Measures: 前向传播速度 + 后处理(解码最高置信度的人脸检测),在不同后端(JS、WASM、WebGL、WebGPU)上的表现。

AI 分类 (TFJS)

  • Model: MobileNetV3‑Small
  • Input: 224 × 224 张量,预热图
  • Measures: 同上,侧重于分类吞吐量。

3. AI with Transformers.js (v3)

AI 分类 (Transformers)

  • Model: MobileNetV4‑Small
  • Backend: 优先使用高性能 WebGPU(回退至 WebGL)
  • Input: 固定 224 × 224 张量
  • Measures: 使用异步指令队列和计算着色器的并行推理能力。

AI LLM (Transformers)

  • Model: SmolLM2‑135M‑Instruct(因果语言模型)
  • Format: 4‑bit 量化(q4)ONNX
  • Measures: GPU 运行时效率(不计模型加载开销);多线程 LLM 执行和实时自回归解码。

AI 语音 (Transformers)

  • Model: Moonshine‑Tiny(自动语音识别)
  • Precision: 混合(FP32)
  • Measures: 在并发负载下的语音转文字推理吞吐量。

摘要

SpeedPower.run 的构建旨在反映现代 Web 应用的 real‑world compute demands。通过同时对 CPU, GPU, and main‑thread work concurrently 进行压力测试,它提供了对浏览器处理 Compute Web 能力的整体视角——在这个时代,性能的定义不再是单一的延迟数字,而是系统一次性协调众多重任务的能力。

Encoder + Q4 Decoder

隔离 GPU 运行时效率与音频处理开销。
该分数突显了处理复杂、高并发语音转文本流水线的能力。

Exchange

由于现代应用依赖 Web Workers“Exchange” 基准测试衡量主线程与工作线程之间的通信瓶颈。它测试以下内容的传输速度:

  • IPC
  • Transferables(可转移对象)
  • 数组
  • 缓冲区
  • 对象
  • OffScreen Canvas(离屏画布)

得分越高 = 主线程 ↔ 背景工作线程的通信越高效。


架构:无需安装

我们坚持认为这应该 零安装或零配置。通过利用 WebAssembly (WASM)WebGPU,我们可以直接在浏览器中访问设备的底层硬件。

  • 无需下载 5 GB 的套件来检查你的机器是否已准备好迎接 AI 网络。
  • 点击一次,在约 30 秒内我们会占满所有可用线程,以找出你的浏览器在现代复杂应用中的极限点。

我们目前正在收集 成千上万的硬件/浏览器组合 数据,以完善对现代网络 “终极性能” 的评分。

我们已经看到一些有趣的异常,例如高端移动 ARM 芯片在任务切换效率上优于某些中端 x86 台式机,这归功于浏览器的热感知调度。

🔗 speedpower.run

结果是否与你的 “真实” 多任务体验相符?在评论中留下你的分数和硬件规格。让我们一起讨论计算密集型网页应用的未来。

Back to Blog

相关文章

阅读更多 »

当 AI 给你一巴掌

当 AI 给你当头一棒:在 Adama 中调试 Claude 生成的代码。你是否曾让 AI “vibe‑code” 一个复杂功能,却花了数小时调试细微的 bug……