3流プログラマのメモ書き

元開発職→社内SE→派遣で営業支援の三流プログラマのIT技術メモ書き。 このメモが忘れっぽい自分とググってきた技術者の役に立ってくれれば幸いです。(jehupc.exblog.jpから移転中)

Chromeが速い理由

@ITChromeはなぜ速いのかという記事で載ってました。

たしかに、Chromeは他のブラウザに比べ、ページ表示が速いように感じます。

そのからくりが上記の記事に載せられているんですが、まあさすがGoogleだなという印象を受けました。

Chromeは下記の点で高速化を実現しているみたいです。

応答性の高速化→体感速度UP

たとえば起動シーケンスを工夫して見かけ上起動したように見せるにしてるっぽいです。

確かにこれはユーザからみると体感速度はUPしますね。

I/Oアクセスを減らす

特にブラウザ本体プロセスはディスクI/O禁止してるようです。

そして、ブラウザ本体プロセスで応答性を悪くさせるような要素を除くため、レンダラーには子ウィンドウを生成させず、またレンダリング結果をいったんバッファ領域にビットマップとして描画してから、それをタブのウィンドウに転送するようにしてるっぽいです。

アンチフィッシングのURLリスト転送工夫

GoogleがフィッシングとみなしたURLのリストをChromeが定期的に取得してるようなのですが、このリストもハッシュ化して、さらに、SHA-256の256ビットのうち先頭32ビットだけを取得してるようです。

アクセスしようとしているURLがブラックURLリストの先頭32ビットで引っ掛かったときだけ、再度256ビットをグーグルのサーバに送って検査するにしてみたいです。

DNSプリフェッチ

これはDNSの名前解決を事前に行うという機能みたいです。

表示したページに含まれるURLのDNSは、もうその段階で名前解決してるっぽいですね。

驚いたのは、名前解決に100~250ミリ秒かかり、場合によって1-2秒かかるサーバもあるようです。

確かに、これはコロンブスの卵的発想です。

Chromeに刺激されて他のブラウザでも応答性の面で改善されることを願いますね。