ドキュメンテーション センター

  • 評価版
  • 製品アップデート

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

プログラムのパフォーマンスの分析

パフォーマンス タイミング関数の概要

MATLAB® プロファイラー、ストップウォッチ タイマー関数 tictoc および関数 timeit を使用すると、プログラムのパフォーマンスに関する情報を取得し、改善が必要な領域を特定できます。プロファイラーは、相対的な実行時間を測定する場合や、コード内のパフォーマンス ボトルネックを特定する場合に役立ちます。関数 timeit は、関数の実行に必要な時間をロバストに測定するための機能を提供します。この関数を使用すると、ロバストな測定が可能になるので、ストップウォッチ タイマー関数ではなく、この関数を使用してください。関数全体ではなく、比較的小さなコード セクションの実行時間を推定するには、tic および toc を使用します。

時間関数

ある関数を実行するために必要な時間を測定するには、関数 timeit を使用します。関数 timeit は、測定される関数のハンドルを受け取り、標準的な実行時間 (秒) を返します。たとえば、ワークスペースで定義されている入力 xy を入力とする関数 computeFunction が定義されているとします。timeit を使用して、この関数の実行時間を計算することができます。

f = @() computeFunction(x,y); % handle to function
timeit(f)

コードの一部の実行時間の測定

プログラムの一部の実行時間を測定したり、プログラムの一部にさまざまな変更を加えた場合の処理スピードを比較する場合は、ストップウォッチ タイマー関数 tictoc を使用することができます。tic を呼び出すとタイマーが開始され、次に toc で経過時間が読み取られます。

tictoc は次のように使用します。

tic
   -- The program section to time. --
toc

tictoc は、経過時間全体を測定することに注意してください。MATLAB プログラムのタイミングに影響する可能性のある他のアプリケーションがバックグラウンドで実行していないことを確認してください。

小さなコード セクションの実行時間の測定

比較的短いプログラムでは、プログラムの実行が速すぎて tictoc では有効なデータを取得できない場合があります。この場合、ループを使用してプログラムを繰り返し実行し、平均時間を計算して 1 回の実行にかかる時間を算出します。

tic
   for k = 1:100
      -- The program section to time. --
   end
toc

関数 cputime と関数 tic/toc と timeit

パフォーマンスの測定には関数 cputime も使用できますが、この目的には関数 timeit または関数 tictoc の組み合わせを使用する方がより適しています。一般的に、Microsoft® Windows® マシンでは、CPU に負荷がかかる計算の場合、初期コストを無視すると、cputime によって求められる経過時間と tic および toc によって求められる経過時間の値は近くなります。ただし、これら 2 つの方法で大きな違いが生じる場合があります。たとえば、ハイパースレッディング対応の Pentium 4 の Windows の場合、cputime の出力値と、tictoc の出力値に重大な違いがあることがあります。

tic および toc と同様、timeitcputime より信頼性の高い結果を提供します。ただし、関数 timeit では、さらに初期コストが考慮に入れられます。

参考

| |

関連する例

この情報は役に立ちましたか?