我在 css3 实验中将 10,000 个小 div 元素从浏览器视口的顶部移动到底部。对于这个测试,我使用了 2 种不同的方法:
- 使用 GPU 加速
translate3D(x, y, z)
或translateZ(0)
top
只需调整css中的属性即可无需GPU加速
使用无硬件加速在 Google Chrome 上运行相当流畅。
如果我启用硬件加速性能会变得更糟。太糟糕了,盒子甚至不再均匀分布:
使用 GPU/硬件加速:
没有 GPU/硬件加速:
问题
为什么呢?不应该使用 GPU 来提高性能吗?
演示应用
https://www.timo-ernst.net/misc/hwtest/
来源
https://github.com/valnub/hwtest
我用于测试的硬件
- Apple Macbook Pro 15" 2015 型号
- CPU 2,8 GHz 英特尔酷睿 i7
- 16 GB 内存
- macOS 大苏尔 11.2
更新(2014-11-13):由于这个问题仍然引起关注,我想指出问题本身似乎仍然存在,尽管在提供的现代硬件演示中可能不再看到提到的口吃。较旧的设备可能仍会出现性能问题。
*更新 II (2021-02-17):问题仍然存在,但您必须根据使用的硬件增加演示中移动的盒子数量。我更改了演示应用程序的 UI,因此您现在可以调整移动框的数量,为您的特定硬件创建口吃动画。为了重现这个问题,我建议创建足够的框来查看启用 GPU/硬件加速的卡顿。然后勾选该框并再次运行测试而不加速。动画应该更流畅。