2006との比較

さて、今回からインストールフォルダが C:\Program Files\CodeGear\RAD Studio\5.0 に変更され、BDS2006 (C:\Program Files\Borland\BDS\4.0) と共存できるようなので、起動時間やビルドの時間を 2006 と 2007 とで比較してみました。
動作環境は Athlon64X2 5600+(2.8GHz)、メモリ 2GBytes、HDD 320GBytes、OS は Windows Vista Ultimate です。

起動時間

ディスクキャッシュを考慮し、OS 起動直後に 2 回起動した時間を手元の時計で計測してみました。なお、BDS2006 はそのまま起動すると全部入りになるので、スタートメニューの C++Builder2006 (bds.exe を -pCBuilder オプション付きで実行)からの起動で試しました。

OS起動直後 2回目
C++Builder2006 25秒 20秒
C++Builder2007 20秒 7秒

特に2回目の起動が格段に速くなってますね…。これはありがたいです。

ビルド時間

IDE 上でのビルドパフォーマンスが上がったらしいので仕事で開発したソースをビルドしてみました。プロジェクト数は 14、ヘッダ・ソースの行数は(システムのヘッダを除いて)111415 行です。*1

プリコンパイルヘッダーは諸事情*2により生成・使用ともに OFF にし、Debug/Release 双方について「再構築」のビルドを続けて 2 回試し、個々の時間を測りました。

ビルドの種類 1回目 2回目
C++Builder2006 Debug 47秒 40秒
C++Builder2006 Release 48秒 40秒
C++Builder2007 Debug 91秒 92秒
C++Builder2007 Release 91秒 92秒

ほぼ倍近くの時間がかかってますね…。orz
純粋なコンパイル・リンクの時間に支配されているのであれば、今回の 2007 ではコンパイラC++ 標準への準拠度を高めたことにより、色々とチェックが厳密になった分時間がかかっているということでしょうか…。(憶測に過ぎません)
まあそれはおいといて、今回のプロジェクトは 2006 のものをそのまま持ってきたので、たまたま IDE の改良点が生かされない構成だったのかも知れません。何か設定が必要なんでしょうか…。(でもビルドを速くするために IDE に施された改良というのが具体的に何なのか、知りたい所ですね…)

make clean がついた

あと気付いたい点としては、ビルド時に生成した obj や lib、exe 等のファイルを削除してきれいにしてくれる、いわゆる "make clean" に相当する機能が今回から追加されました。自分にとってこのお掃除機能は超重要です。make を使っていた頃から普段お世話になってましたし、VisulStudio には当り前のようにある機能なので、C++Builder6 を初めて触った時には何故これがないのかとても不思議に思ったものでした。
仕方ないので、ソースツリーのアーカイブを作る前の掃除として、エクスプローラから "*.obj;*.exe;*.lib;*.tds;*.~*;*.*~" を検索し、出てきたファイルを削除…なんてことをやる必要がありました。さらに悪いことに、Vistaエクスプローラでは検索欄に複数のフィルタを ";" で区切って一度に指定する方法ができない(らしい? 現時点で不明)ので、さらに手間がかかるようになっていました…。
それが今回の clean の追加により、長年の悩みが一挙解決…かと思いきや、現状ではどうもプロジェクトごとの clean しかできないようです。id:logion:20070609#p1 の機能一覧にあった、「プロジェクトマネージャでの複数選択」も結局できないようなので、個々のプロジェクトを選択しては右クリック→クリーン、という作業をプロジェクトの回数だけ繰り返す必要があります。これではせっかくのお掃除機能が生かされない UI になってるような気がします…。
せめて、再構築の時や VisualStudio のように、依存関係にあるプロジェクトは全て一度に掃除してほしい…。バグ?というよりは要望に近いのですが、QualityCentral に報告しておくべきなのかも知れません…。

*1:ほとんどは外部ライブラリのソースで、自分で書いた部分を抜き出してみたら 20046 行になりました…。

*2:プリコンパイルヘッダのスマートキャッシュ ON にすると、2007 の方ではビルドが途中で落ちてしまい、最後まで到達できませんでした。