Chromeがバイナリ差分で新アルゴリズム実装 − @IT(情報元のブックマーク数)

Google Chromeがバイナリ差分アップデートアルゴリズムをbsdiffからCourgetteに変更したそうです。

グーグルのChromeチームは7月16日、Chromeの自動アップデートで使われるバイナリアップデートに新たなアルゴリズムを実装したことを明らかにした。実際の例として、実行形式のフルアップデートで10MBの容量が必要だったものが、従来の差分方式で704KB、今回発表した新方式では78KBにまで縮小したという。

Chromeがバイナリ差分で新アルゴリズム実装 − @IT

バイナリ本体とかファイルじゃなく、ディスアセンブル*1したのとに、差分だそうです、よくわがんね・・・

セキュリティパッチなどは、ソースコードレベルで数行の変更であることも多いため、新バージョンの実行バイナリを丸ごとユーザーに送りつける代わりに、差分だけ送ることで転送量を抑えることができる。これまでChromeチームではbsdiffと呼ばれるバイナリ向け差分ツールを使っていたが、今回これを「Courgette」(ズッキーニ)と呼ぶ新アルゴリズム採用のものに置き換えたという。
コンパイル済みの実行バイナリは、ソースコードを数行変更するだけで大きく変化してしまうという問題があったという。これはコンパイラバッファオーバーランを防止するために挿入するコードによって命令列が大きく移動してオフセットがずれるため。これを解決するためCourgetteでは、コンパイル後のバイナリ間で差分を取るのではなく、いったん原始的なディスアセンブルを行って、内部ポインタをシンボルに戻して、それをベースに差分を取るという。

Chromeがバイナリ差分で新アルゴリズム実装 − @IT

screenshot

*1:typoのご指摘ありがとうございます>熊猫さん