開発ツール/プラットフォーム 開発ツール/プラットフォーム記事一覧へ

[市場動向]

早稲田大学、ビルド時のファイル依存関係の検証を50倍に高速化する新手法を開発

差分解析とカーネル空間でのファイル操作監視で高速化

2026年9月18日(金)日川 佳三(IT Leaders編集部)

早稲田大学は2026年9月15日、ソフトウェア開発におけるファイル依存関係を高速に検証する技術「mkcheck2」を開発したと発表した。ファイル依存関係の定義(Makefileなど)が正しいかどうかを、ビルド時の実際の動きをもとに検証する。新技術はeBPF手法を用いており、従来のptrace手法と比べてコード変更時の平均解析時間を1267秒から23秒へと短縮したという。

 早稲田大学理工学術院の鷲崎弘宜教授と東京通信大学の坂本一憲准教授らの研究グループは、ソフトウェア開発におけるファイル依存関係を高速に検証する技術「mkcheck2」を開発した。ファイル依存関係の定義(Makefileなど)が正しいかどうかを、ビルド時の実際の動きをもとに検証する。

 背景として、ソフトウェア開発においては、プログラム本体とライブラリのように、ファイルAがファイルBに依存している場合、ファイルBが更新されていたらファイルAを再ビルドする(図1)。ただし、この仕組みが正しく機能するためには、依存関係の定義(Makefileなど)が正確でなければならない。ビルドツールは定義ファイルをもとに必要と判断したビルドを実行するからである。

図1:ビルド時に判明するファイル間の依存関係の定義のエラー(出典:早稲田大学)
拡大画像表示

 しかし、実際の開発現場では、必要な依存関係が定義から漏れることや、逆に不要な依存関係が定義に紛れ込むことがある。依存関係の定義漏れがあると、依存先のファイルを更新しても依存元が再ビルドされず、古いままのファイルが使われ続ける。逆に、依存関係が余分にあると、無関係なファイルが更新されるたびに不要な再ビルドが発生する。

 依存定義のエラーを検出するため、従来はビルドのたびに全ファイルの依存関係を調べ直す検証手法が使われてきた。また、ビルド時におけるファイル操作をユーザー空間で検出していたため、ファイル操作の呼び出しが発生するたびに処理の切り替えが必要になり、これが検証にかかる時間を押し上げる要因になっていた。

 今回開発した新技術は、毎回すべての依存関係を検証するのではなく、変更があった部分だけを検証対象とすることで、計算量を減らした。さらに、Linuxのカーネル内でプログラムを動作させる仕組みであるeBPF(extended Berkeley Packet Filter)を使い、ビルド時のファイル操作をカーネル空間内で直接監視するようにして、ファイル操作の呼び出しにともなう負荷をほぼゼロに抑えた(図2)。

図2:従来手法(ptrace方式)と新手法「mkcheck2」(eBPF方式)との比較(出典:早稲田大学)
拡大画像表示

 差分解析とカーネル空間でのファイル操作の監視という2つの技術を組み合わせたことで、ビルド時の検証にかかる時間を最大99.7%高速化した。変更したコードを登録した際の平均解析時間も、従来手法の約1267秒から約23秒へと短縮した。研究グループが300件のオープンソースプロジェクトで評価したところ、依存関係の欠落を検出する精度は100%だった。

関連キーワード

早稲田大学 / 東京通信大学 / ビルド

関連記事

トピックス

[Sponsored]

早稲田大学、ビルド時のファイル依存関係の検証を50倍に高速化する新手法を開発早稲田大学は2026年9月15日、ソフトウェア開発におけるファイル依存関係を高速に検証する技術「mkcheck2」を開発したと発表した。ファイル依存関係の定義(Makefileなど)が正しいかどうかを、ビルド時の実際の動きをもとに検証する。新技術はeBPF手法を用いており、従来のptrace手法と比べてコード変更時の平均解析時間を1267秒から23秒へと短縮したという。

PAGE TOP