私は、Cソースファイルの完全な前処理されたソースコード(#line情報やコメントは必要ありません。生のソースコードのみ)を取得するための最速の方法を見つけようとしています。
Windowsヘッダーファイル(mini.c
)を含む次の小さなテストプログラムがあります。
#include <windows.h>
次に、Microsoft Visual Studio 2005を使用して、次のコマンドを実行します。
cl /nologo /P mini.c
これは、2.5MBのmini.iファイルを生成するのに6秒かかります。これをに変更します
cl /nologo /EP mini.c > mini.i
(コメントと#line情報をスキップします)2.1MBの出力を書き込むのにわずか0.5秒かかります。
プリコンパイル済みヘッダーを使用せずに、これをさらに改善するための優れたテクニックを知っている人はいますか?
私が尋ねている理由は、MSVC用の人気のあるccacheツールのバリアントを作成したためです。作業の一環として、プログラムは前処理されたソースコード(およびその他のいくつか)のハッシュサムを計算する必要があります。これをできるだけ速くしたいと思います。
たぶん、利用可能な専用のプリプロセッサバイナリ、または役立つかもしれない他のコマンドラインスイッチがありますか?
更新:頭に浮かんだアイデアの1つは、WIN32_LEAN_AND_MEANマクロを定義して、めったに必要とされない多くのコードを取り除くことです。これにより、上記のプリプロセッサの実行速度が約3倍になります。