アプリケーションの実行速度の計測を行うときには,次の点に注意する必要があります。
プログラムの実行速度の計測は,他にシステムを使用しているユーザーが存在しないときに行います。実行速度の計測中に 1 個以上の CPU 集中型プロセスが実行されていると,計測結果に影響が及ぶことがあります。
特に同じプログラムの前バージョンと実行時間を比較する場合,できるだけ正確な結果が得られるように,プログラムを毎回同じ条件で実行するように試みてください。可能ならば,同じシステム (プロセッサー・モデル,メモリー量,オペレーティング・システムのバージョンなど) を使用します。
システムを変更する必要がある場合,システムが実行速度に与える影響を知るために,プログラムの同じバージョンを両方のシステムで実行して時間を測定してください。
実行時間が数秒しかないプログラムでは,誤解を招く結果が生じないように,実行速度の計測を何度も行ってください。実行時間が短い場合,DLL のロードなどの一部のオーバーヘッド機能が大きな影響を与えることがあります。
プログラムが大量のテキストを表示する場合,プログラムからの出力をリダイレクトすることを検討してください。プログラム出力をリダイレクトすると,画面への I/O が減るために,報告される時間が変わります。
アプリケーションの実行速度の計測方法
アプリケーションの実行速度を計測するには,.BAT ファイル中で TIME コマンド (または関数タイミング・プロファイル・オプション) を使用します。プログラムを変更して,プログラム中から実行時間を測定するためのルーチンを呼び出すことを検討してください。条件コンパイルが利用できます。次に例を示します。
Windows 95, Windows 98 または Windows ME 開発環境で作成された Visual Fortran プログラムは,Windows NT, Windows XP と Windows 2000 システムで実行し,解析することができます。可能な限り,詳しい性能解析は,実際にアプリケーションを実行するシステムによく似たシステムで行うようにしてください。
TIME とパフォーマンス・モニタを使用するコマンド・プロシージャの例
次の例は,TIME コマンドと,Windows NT, Windows XP と Windows 2000 システムで利用できるパフォーマンス・モニタ (perfmon) ツールを使用する .BAT コマンド・プロシージャを示しています。perfmon ツールを停止する kill コマンドは Windows NT リソース・キットに含まれています。システム上で kill ツールが利用できない場合は,タスク・マネージャを使用して perfmon タスクを手動で停止してください。
この .BAT プロシージャは,実行速度を計測するプログラム名を myprog.exe と仮定しています。
このバッチ・ファイルを使用する前に,パフォーマンス・モニタを起動して,関心がある統計情報のログ収集を設定します。
MS-DOS プロンプトで Perfmon と入力します。
「表示」メニューの「ログ」を選択します。
「編集」メニューの「ログに追加」を選択し,統計情報をいくつか選択します。
ログ・ファイルに名前を付けます。次に示す .BAT プロシージャは,ログ・ファイルに myprog.log という名前を付けたと仮定しています。
「更新時間」を調整することを検討してください。
最後の手順として,必ず「ログの開始」を選択します。
「ファイル」メニューの「ワークスペースを保存」を選択して,設定情報を保存します。次に示す .BAT プロシージャでは,ワークスペースを my_perfmon_setup.pmw として保存したと仮定しています。
次にコマンド・プロシージャを示します。
echo off rem Sample batch file to record performance statistics rem for later analysis. rem This .bat file assumes that you have rem the utility "kill" available, which is rem distributed with the NT resource kit. rem Delete previous logs, then start up rem the Performance Monitor. rem We use start so that control returns instantly rem to this batch file. del myprog.log start perfmon my_perfmon_setup.pmw rem print the time we started time <nul | findstr current rem start the program we are interested in, this time using rem cmd /c so that the batch file waits for the program to finish. echo on cmd /c myprog.exe echo off rem print the time we stopped time <nul | findstr current rem all done logging statistics kill perfmon rem if kill is not available, end the perfmon task manually
実行後,パフォーマンス・モニタを使ってデータを解析します。
まだ実行されていない場合,パフォーマンス・モニタを起動します。
「表示」メニューの「グラフ」を選択します。
「オプション」メニューの「データ」を選択し,ログ・ファイルの名前を指定します。
「編集」メニューの「グラフに追加」を選択して,カウンターを表示します。
関連情報
ソース・コードの変更なしでアプリケーションの性能を改善する最適化については,「適切なオプションと複数のソース・ファイルのコンパイル」を参照してください。
アプリケーションのプロファイルについては,「プロファイルおよび性能向上用ツール」を参照してく