css3 の実験で 10,000 個の小さな div 要素をブラウザー ビューポートの上部から下部に移動しています。このテストでは、2 つの異なるアプローチを使用します。
translate3D(x, y, z)
またはを使用した GPU アクセラレーション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 インテル Core i7
- 16GBのRAM
- macOS ビッグサー 11.2
更新(2014-11-13): この質問はまだ注目を集めているため、問題自体はまだ存在しているように見えることを指摘したいと思いますが、最新のハードウェアで提供されているデモでは、前述の吃音は表示されない可能性があります。古いデバイスでは、依然としてパフォーマンスの問題が発生する可能性があります。
*更新 II (2021-02-17): 問題は引き続き発生しますが、使用するハードウェアに基づいて、デモで移動するボックスの数を増やす必要があります。デモ アプリの UI を変更したので、移動するボックスの数を調整して、特定のハードウェアのスタッター アニメーションを作成できるようになりました。この問題を再現するには、GPU/ハードウェア アクセラレーションを有効にしてスタッターを確認するのに十分な数のボックスを作成することをお勧めします。次に、ボックスにチェックマークを付けて、加速せずにテストを再度実行します。アニメーションはよりスムーズになるはずです。