GPU 基准测试
此基准测试会刻意让你的 GPU 满载运行
要测出真实吞吐量,就得让显卡高强度运行约 8 秒(持续负载检查则为 30 秒)。运行期间页面可能会感觉变慢,耗电和发热也会明显增加 —— 这完全正常,一旦离开本页或点击取消,测试会立即停止。
比正常浏览耗电更多 · 运行期间页面可能变卡 · 切换标签页或点击取消会立即停止
快速基准测试
分三个阶段运行约 8 秒的 GPU 负载,并给出真实的吞吐量数字。
着色器填充率
尚未测量。
绘制调用吞吐量
尚未测量。
纹理采样率
尚未测量。
持续负载(30 秒)
让着色器阶段持续运行 30 秒,并对比前 5 秒与最后 5 秒的吞吐量,以检测是否存在散热或功耗限制。
总结
- WebGL 支持情况
- 硬件加速
- 渲染器身份
- GPU 选择
- 着色器吞吐量
- 绘制调用吞吐量
- 纹理吞吐量
- 持续负载
- 上下文稳定性
- WebGPU
网上大多数“GPU 测试”页面只会渲染一个旋转的 3D 场景,指望它看起来流畅就算数。这个工具测量的是真实的 GPU 工作量 —— 按固定时间预算完成多少运算,并且渲染在离屏表面上,让显示器的刷新率永远无法给结果封顶 —— 并且诚实地报告出来:三项各自带有误差范围的独立吞吐量数字、你的浏览器是否真的在使用显卡硬件,以及这份吞吐量在更长时间的持续负载下能否保持住。凡是没有任何浏览器 API 能真正看到的东西,本页都拒绝去猜:没有 VRAM 数字,没有跨设备的综合评分,没有温度,也没有刷新率(那是 FPS 测试的工作,不是这里)。
工作原理
- 关闭其他占用 GPU 的标签页和程序. 如果是笔记本电脑,先接上电源并把电源模式调到性能优先 —— 省电模式会悄悄限制 GPU 频率,就像它在 FPS 测试里限制帧率一样。
- 阅读能力报告. 页面一加载就会显示,不需要任何授权,也不会产生任何 GPU 负载 —— 只是你的浏览器愿意向网页透露多少关于显卡的信息。
- 确认安全提示. 基准测试会刻意让 GPU 高强度运行:这会更耗电、产生一些热量,页面运行期间也会感觉变慢。读一遍提示,然后确认继续。
- 运行快速基准测试. 大约 8 秒。查看三项吞吐量数字 —— 着色器填充率、绘制调用吞吐量、纹理采样率 —— 每一项都带有各自的单位和误差范围。
- 如果在意散热,运行持续负载检查. 另一个单独的 30 秒按钮。如果你的设备用得越久越慢,这项检查会通过对比早期和后期的吞吐量,真正把这个问题测出来。
- 看总结,而不只是看数字. 硬件加速、GPU 选择和上下文稳定性是最重要的发现。原始吞吐量数字更适合用来对比自己设备的前后变化,而不是拿去和别人的设备比高低。
这项测试到底测量的是什么
基准测试的每个阶段都渲染在一个离屏表面上 —— 这个表面永远不会显示在你的屏幕上,也不会被合成 —— 所以结果不会像可见动画那样被显示器的刷新率封顶。报告的数字是完成的工作量除以真实经过的时间:每秒的像素着色器迭代次数、每秒的绘制调用次数,或每秒的纹理采样次数。这是对 GPU 吞吐量的真实测量,与帧率是结构上完全不同的两件事。
如何解读你的能力报告
WebGL 2 是几乎所有现代浏览器都支持的基准线;仅支持 WebGL 1 属于真实存在但正在减少的少数情况,多见于较旧的设备;完全不支持 WebGL 意味着本页无法再测量或报告任何关于你显卡的信息。
下方的能力上限表格是显卡驱动直接向浏览器上报的数值 —— 最大纹理尺寸、能做多少倍的抗锯齿采样、一个着色器能同时采样多少张纹理,以及类似的硬性上限。扩展列表从一个真实浏览器通常支持的 30 到 40 多项扩展中,挑出了一小部分值得解释的(浮点渲染目标、各向异性过滤、压缩纹理格式)。
为什么你的 GPU 名称可能被隐藏
Safari 始终返回一个固定字符串 —— “Apple GPU” —— 无论 Mac 或 iPhone 里实际装的是哪块芯片,都不会给出真实型号名。Firefox 在开启自身的反指纹追踪设置后,会泛化甚至完全隐去这个字符串。这是浏览器有意做出的隐私决定,不是本页的漏洞;而一个固定不变的值算不上一次测量 —— 所以本页不会把一个占位字符串包装成看似真实的 GPU 型号,而是直接说明名称被隐藏了,并解释原因。
这一切都不会影响下方的吞吐量数字。被隐藏的名称和被完整测量出来的着色器填充率是两件完全独立的事 —— 你的浏览器可以拒绝说出显卡的名字,同时本页依然能测出它到底有多快。
软件渲染:本页能告诉你的最重要的一件事
软件渲染器意味着你的 CPU 在假装自己是显卡 —— 每个像素都由软件计算得出,速度只有真实硬件的一小部分,无论上报的名称看起来多像一块真实的 GPU。本页用两种方式同时检测这一点:一种是明确的软件渲染家族字符串(SwiftShader、llvmpipe、Microsoft Basic Render Driver);另一种是名称看起来像硬件、但实测吞吐量远低于任何真实 GPU 应有水平的情况 —— 第二种情况通常意味着一条被降级或被模拟的渲染路径,藏在一个听起来正常的名称背后。
- 浏览器自身设置中关闭了硬件加速。
- 某个特定的 GPU 驱动被列入了浏览器内部的黑名单,通常是因为已知的驱动漏洞。
- 正在远程桌面或虚拟机会话中运行,真实 GPU 通常根本没有被直通进来。
- 显卡驱动严重过旧或已损坏。
持续负载与散热降频
30 秒的持续负载检查会连续重复着色器阶段,并对比最初 5 秒和最后 5 秒的吞吐量,报告起始速率保留下了多少。一台无风扇手机或一台轻薄本在满载 30 秒后损失一部分实打实的吞吐量,是正常的工程设计,不是故障 —— 小型密封设备本来就是为降频而不是为过热而设计的,本页也是按这个思路来呈现结果,而不是把它当成对你硬件的判决。
双 GPU 笔记本电脑:为什么高性能那块可能从未启用
同时拥有集成显卡和独立显卡的游戏本或创作者本,通常允许应用通过一个叫 powerPreference 的提示来指定使用哪一块。本页会同时发起两种请求 —— 一个低功耗上下文和一个高性能上下文 —— 并对比两个适配器的身份信息。如果两次得到了真正不同的渲染器字符串,说明高性能请求确实唤醒了独立显卡。
两次请求得到相同的渲染器字符串,并不能证明你的独立显卡坏了 —— 单显卡设备也会得到完全一样的结果,这完全正常。但在一台本应拥有两块显卡的设备上,这依然是真实且有用的信息:它可能意味着混合显卡驱动的设置、某种 MUX 直连开关配置,或者一个真实存在、值得用笔记本厂商自带的 GPU 切换软件排查一下的故障,而不必急着往最坏的方向想。
这项测试不是什么
- 不是 VRAM 读数 —— 没有任何网页 API 能暴露你的显卡有多少显存。
- 不是跨设备评分 —— 本页任何地方都不存在综合分数、等级梯队或百分位排名。
- 不是温度或功耗读数 —— 没有任何浏览器 API 会暴露这两项数据。
- 不是刷新率或 FPS 测量 —— 需要这些请看 FPS 测试。
- 不是驱动级的 GPU 计时器。能实现这一点的浏览器扩展 EXT_disjoint_timer_query_webgl2 只存在于 Chrome 和 Edge 中,而且即便在这两个浏览器里也默认关闭 —— 用它会导致 Chrome 上得出一个数字,其他浏览器上得出结构完全不同的另一个数字,因此本页统一使用普通的墙钟计时,这种方式在每个浏览器上的表现都完全一致。
常见问题
为什么这里不显示我显卡的名称?
Safari 始终返回固定的“Apple GPU”字符串;Firefox 在开启反指纹追踪设置后,会泛化或隐去真实名称。这是浏览器有意做出的隐私决定。一个固定不变的字符串算不上一次测量,所以本页会直接说明名称被隐藏了,而不是显示一个看似有意义的占位符。
“软件渲染”是什么意思?为什么它这么重要?
它意味着每个像素都是由你的 CPU 用软件计算出来的,而不是由真正的 GPU 完成,速度通常只有真实硬件的一小部分。这是本页能发现的最关键的一件事,因为一旦出现,页面上其余所有和真实硬件比较的数字都会失去意义。
为什么我的结果和 3DMark 这类桌面跑分工具不一样?
浏览器基准测试要多经过几层原生跑分工具不需要经过的环节 —— 浏览器自身的合成器、GPU 沙盒进程,以及在某些平台上,WebGL 与原生图形 API 之间还要经过 ANGLE 这样的转译层。这些环节会带来真实且无法避免的开销,所以浏览器里测出的数字在同一块硬件上诚实地低于原生跑分,两者并不适合直接比较。
这个能测出我的显卡有多少 VRAM 吗?
不能。没有任何网页 API 会向浏览器页面暴露显存大小,所以本页不会去猜这个数字。
我的笔记本电脑有独立显卡,为什么这里没显示出来?
双 GPU 检查对比的是低功耗请求和高性能请求各自得到的渲染器字符串。如果两者完全一致,要么这台设备其实只有一块 GPU,要么你的独立显卡在这个页面上没有被唤醒 —— 在认定是故障之前,先检查一下笔记本厂商自带的 GPU 切换软件(如 NVIDIA Optimus、AMD Switchable Graphics),因为单显卡设备也会得到完全一样的结果,这完全正常。
在手机上运行这个安全吗?会不会过热?
它被设计成有明确边界、安全可控的:快速基准测试约 8 秒,持续负载检查上限为 30 秒,而且一旦你切换标签页或点击取消,测试会立刻停止,因为整个运行是按每个动画帧推进一步的 —— 在被切到后台的标签页里,这在物理上根本无法继续。运行期间会有真实的发热和耗电,和任何一款高负载使用 GPU 的应用一样,这不是故障。
为什么 Chrome、Firefox 和 Safari 在同一台设备上测出的数字不一样?
每个浏览器都有自己的图形管线、自己的驱动转译层,以及自己的调度开销,即便面对的是同一块物理 GPU —— 所以不同浏览器在相同硬件上测出不同数字是预期之中的,不代表哪里出了问题。
这个测试会测量我的帧率吗?
不会 —— 这是有意为之的。每个阶段都渲染在离屏表面上,所以这里的任何结果都不会被显示器的刷新率封顶。帧率和刷新率测量属于本站的 FPS 测试,本页任何地方都不会显示 FPS 或 Hz 数字。
为什么没有温度读数?
没有任何网页 API 会向浏览器页面暴露设备温度。持续负载检查改为报告保留率百分比 —— 也就是 30 秒持续负载后,起始吞吐量保留下了多少 —— 这是本页真正能拿到的、诚实且可测量的降频替代指标。
每一项测量结果 —— 能力报告、吞吐量数字、持续负载保留率,以及上下文丢失事件 —— 都完全在这个浏览器标签页内计算得出,来自你自己显卡驱动对标准 WebGL 与 WebGPU 调用的响应。关于你的 GPU、你的会话或你的结果,没有任何信息会被上传或发送到任何地方。