Windows版「Chrome」、64以降はClangでコンパイル
2018年3月11日 18:13
Windows版Google Chromeでは、2月に安定版がリリースされたChrome 64以降でコンパイラーにClangが使われているそうだ(LLVM Project Blogの記事、Ars Technicaの記事、BetaNewsの記事、Neowinの記事)。 Microsoft Visual C++(MSVC)からClangに移行する計画は数年前から進められており、MSVCビルドとClangビルドによるA/Bテストも実施していたそうだ。既に他のOS版はClangでコンパイルされているため、Windows版の移行によりClangへの移行が完了したことになる。ただし、ClangはVisual Studioに加えて使われるもので、置き換えるものではないという。現在もWindows版ChromeではMicrosoftのヘッダーやライブラリ、SDKバイナリを使用しているほか、Windows版Chromeの開発者の多くはVisual Studioを使用しているとのこと。 ClangとMSVCを比較すると、Clangによるビルドは15%遅くなるが、Clangのデバッグ情報出力方法は並列化可能であり、Gomaのような分散ビルドサービスを使用することでMSVCよりも高速になるそうだ。バイナリサイズは32ビットビルドでMSVCよりも大きくなる一方、64ビットビルドは小さくなる。パフォーマンスに関しては、Clangビルドが高速な場合とMSVCビルドが高速な場合があるものの、すべて5%程度の差に収まっているという。また、安定性の差異はみられないとのことだ。