図1●リスト1のプログラム「vbappwpf」を動かした様子
図1●リスト1のプログラム「vbappwpf」を動かした様子

 マイクロソフトの.NET Framework 3.5 SP1のダウンロード・ページには,「Windows Presentation Foundationのパフォーマンス強化としては,起動時間の短縮とビットマップ効果のパフォーマンスの向上が挙げられます」と書かれている。

 そこで実際にWPFアプリケーションのプロジェクトを作り,フォームにラベル・コントロールを三つ(Label1,同2,同3),イメージ・コントロールを一つ(Image1)貼り付けて,リスト1のコードで試してみた(図1)。プログラム名は「vbappwpf」とし,それを呼び出すC++のWin32コンソール・アプリケーション「vcappwpf」も作成した*1

リスト1●起動,画像表示,リサイズに要した時間を表示するWPFプログラム(Window1.xaml.vb)
リスト1●起動,画像表示,リサイズに要した時間を表示するWPFプログラム(Window1.xaml.vb)
[画像のクリックで拡大表示]

 コマンドライン引数をLabel1に,フォームのロードが始まった時間をLabel2に表示する(1)は前回のものとほぼ同様だ。(2)では,Image1に「flower1.jpg」という画像ファイルを読み込んで表示し,ウィンドウの大きさを5段階に変更する処理を10回繰り返す。(3)で時間をLabel3に表示し,(4)でファイルに結果を出力する。

 起動時間は表1のようになった。前回と異なり,1回目の起動は.NET Framework 3.5 SP1の方が速い。ただ,2回目はSP1の方が遅く,3~10回目は変わらない。画像ファイルを読み込んで表示する時間は30回分の平均を示す。.NET Framework 3.5では5033ミリ秒,.NET Framework 3.5 SP1では4943ミリ秒だった。2パーセント程度,SP1が速かった。

表1●vcappwpfでリスト1のvbappwpfを呼び出して,起動時間を測った(単位ミリ秒)。Windows起動後の,1回目の起動は.NET Framework 3.5 SP1の方が速かった。ただ,2回目は時間がかかった
表1●vcappwpfでリスト1のvbappwpfを呼び出して,起動時間を測った(単位ミリ秒)。Windows起動後の,1回目の起動は.NET Framework 3.5 SP1の方が速かった。ただ,2回目は時間がかかった