ブラウザエンジン先端観測会での、Constellationさんの話を聴いて、CSSセレクターマッチングのコストには複数のレベルがあることを強く意識するようになりました。セレクターマッチングにかかるコストを下げたい、という場合には、どのレベルで何を高速化しようとしているのかを意識しないと話がかみあいません。Constellationさんの話を私なりに整理して考えた、セレクターマッチングのコストを下げるアプローチは次の3つです。 ①セレクターを減らす ②マッチするかどうかの判定回数を減らす ③1回1回の判定処理を速くする これは、ブラウザーのセレクターマッチングの処理の各部分に対応しています。 CSSの各セレクターについて(①)、 対象となるDOM要素すべてに対して、 セレクターがマッチするかしないか決まるまで、親要素・兄要素を辿りながら(②)、 要素がセレクターにマッチする・しないの判定(③
![CSSセレクターマッチングのコスト - Unreviewed](https://cdn-ak-scissors.b.st-hatena.com/image/square/f32fb096cd2a10e56d6838a2b09454153d034f85/height=288;version=1;width=512/http%3A%2F%2Fimg.f.hatena.ne.jp%2Fimages%2Ffotolife%2Ft%2Ftakenspc%2F20140914%2F20140914202844.png)