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