ブラウザのレンダリングパイプラインにおいて、レイアウト (Layout)、ペイント (Paint)、コンポジット (Composite) は主要な段階です。
このプロセスは、HTMLとCSSから始まり、レンダーツリー (Render Tree) の生成へとつながります。
レイアウトは、ページ上の各要素の位置とサイズを決定します。マージンや幅のようなレイアウト関連のCSSプロパティを変更すると、リフロー (Reflow) が発生します。
ペイントは、背景色や枠線などの要素のピクセルを塗りつぶす作業です。ペイント関連のプロパティが変更されると、リペイント (Repaint) が発生します。
コンポジットは、要素をレイヤーに昇格させ、GPUを使用して変換や不透明度の変更を行います。これらのレイヤーが組み合わされて、最終的なウェブページが表示されます。
レイアウトやペイントをトリガーすることは、コンポジットのみの操作よりも計算コストが高くなります。CSSを最適化してコンポジットのみのステップをトリガーすることは、ウェブパフォーマンスを大幅に向上させます。
dev.to
What is Layout, Paint, Composite? and How Do They Affect Web Performance?
