Visual Studio 2008 SP1と.NET Framework 3.5 SP1を導入することで,プログラムの起動時間は短くなるのだろうか?

 Windows Vistaには,最も頻繁に使用されるアプリケーションを監視してこれらのアプリケーションをメモリーにあらかじめ読み込む「SuperFetch」などの機能があり,プログラムの起動時間は毎回変動する。測定しても安定した結果が出るとは限らないが,試してみよう。

 今回は,VC++でWin32コンソール・アプリケーション「vcapp.exe」を作り,そこからVBで作った.NET FrameworkベースのWindowsフォーム・アプリケーション「vbapp.exe」を呼び出す形で測定してみた。リスト1がvcappのコードだ*1

 (1)で日時を格納する構造体stを作り,(2)で現在の日時を格納する。(3)の文字型配列argは,コマンドライン引数として使うためのものだ。(4)で,呼び出し時刻を格納した文字列をargに格納する。(5)でC:\workフォルダにあるvbapp.exeを,argを引数にして起動する。

リスト1● 時刻をコマンドライン引数として渡してVBプログラムを起動する「vcapp」(vcapp.cpp)
リスト1●時刻をコマンドライン引数として渡してVBプログラムを起動する「vcapp」(vcapp.cpp)
[画像のクリックで拡大表示]

 vbappの方は,フォームにラベル・コントロールを二つ貼り付ける(名前はLabel1とLabel2)。フォームのLoadサブプロシジャに,リスト2のコードを記述する。(1) で現在日時を取得し,(2)でファイル「log.txt」に出力する準備をする。(3)は,コマンドライン引数の1番目をLabel1に格納する。(4)は,(1)で取得した時刻をLabel2に格納する。(5)はLabel1とLabel2の内容をlog.txtに出力する。

リスト2●リスト1から呼び出すVBプログラム「vbapp」(Form1.vb)
リスト2●リスト1から呼び出すVBプログラム「vbapp」(Form1.vb)
[画像のクリックで拡大表示]