我在一个 css3实验中将10,000个小 div 元素从浏览器视图的顶部移动到底部。对于这个测试,我使用了两种不同的方法:
translate3D(x, y, z)
或 translateZ(0)
的 GPU 加速top
属性没有 GPU 加速使用 没有硬件加速运行在谷歌浏览器上相当平稳。
如果我启用硬件加速性能会变得很糟糕,糟糕到盒子甚至不再平均分布:
为什么会这样呢? 难道不应该使用 GPU 来提高性能吗?
Https://www.timo-ernst.net/misc/hwtest/
Https://github.com/valnub/hwtest
更新 (2014-11-13) : 由于这个问题仍然吸引着人们的注意力,我想指出问题本身似乎仍然存在,尽管上面提到的口吃可能在提供的演示 现代硬件中不再可见。较旧的设备可能仍然会看到性能问题。
* 更新二(2021-02-17) : 问题仍然存在,但是你必须根据所使用的硬件增加演示中移动的盒子数量。我改变了演示应用程序的用户界面,所以你现在可以调整移动的盒子的数量,为你的特定硬件创建一个结巴的动画。为了复制这个问题,我建议创建足够多的框,以便看到启用 GPU/硬件加速时的口吃。然后勾选框并在没有加速的情况下再次运行测试。动画应该更流畅。