デバッグビルドを100倍高速化:SIMDと専用シリコンが救世主に
C言語ベースのTorrentアプリケーションを開発中に、デバッグビルドの起動時間が非常に遅いという問題(20~30秒)に遭遇しました。これは主に、プログラムの起動時にダウンロード済みファイルの各ピースのSHA1ハッシュ値を検証する必要があること、そしてデバッグモードでのAddress SanitizerがSHA1計算速度を大幅に低下させることが原因でした。この記事では、SIMD命令とCPUの専用SHA高速化ハードウェアを使用するなど、いくつかの最適化手法を試みました。最終的に、IntelのSHA拡張命令セットを使用することで、起動時間を866.9ミリ秒に短縮し、100倍の性能向上を実現しました。この記事では、さまざまな最適化手法の実装の詳細と性能比較について説明し、コンパイラの最適化とディスクI/Oの影響についても考察しています。
続きを読む