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

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

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

パフォーマンスの向上のためのプロファイル

プロファイリングとは

プロファイリングとは、プログラムが時間を消費する場所を測定する方法です。プロファイリングを行うには、プロファイラーと呼ばれる MATLAB® のグラフィカル ユーザー インターフェイスを使用します。これは関数 profile を実行した結果に基づいています。どの関数が多くの時間を消費しているかが特定できると、それを呼び出している理由を知ることができます。次に、その関数の使用を最小化して、性能を改善します。特定の関数を呼び出すコードの回数が妥当かどうかを判断するうえで役立ちます。プログラムは複数の層で構成されていることがあるため、コードで最も時間を要する関数を明示的に呼び出せない場合があります。むしろ、コード内の関数は、コード内の数層下のレイヤーに位置する他の時間消費関数を呼び出す可能性があります。この場合、そのような呼び出しに対して、どの関数に問題があるかを判定することが重要になります。

プロファイラーを以下のように使用して、パフォーマンス上の問題を解決するのに役立てることができます。

  • 不注意による不必要な計算を避ける

  • アルゴリズムを変更して、時間がかかる関数を避ける

  • 将来の使用のため結果を保存して、再計算を避ける

プロファイリングでほとんどの時間が少数の組み込み関数の呼び出しに使われている場合は、おそらくコードの最適化が最大限になされています。

    メモ:   Parallel Computing Toolbox™ を使用する場合は、並列処理をプロファイルする並列プロファイラーを使用できます。詳細は、「並列コードのプロファイル 」を参照してください。

プロファイリング手順とガイドライン

ここでは、コードのパフォーマンスを向上させるためにプロファイラーを使用してできる一般的なプロセスを示します。この節には、以下のトピックがあります。

    ヒント:   最適化を急ぎ過ぎると、実質的にパフォーマンスが向上せず、不必要なコードの複雑さをもたらす場合がよくあります。最初の実装は可能な限り簡単であるべきです。その後で、速度が問題である場合は、プロファイリングを使ってボトルネックを同定します。

  1. プロファイラーの概要レポートで、非常に時間を要した関数または非常に頻繁に呼び出された関数を検索します。詳細は、「プロファイル概要レポート」を参照してください。

  2. これらの関数の詳細レポートを表示して、最も時間を要する行または頻繁に呼び出される行を調べます。詳細は、「プロファイル詳細レポート」を参照してください。

    最初の詳細レポートのコピーを、比較するための参照として保存することを検討してください。関数ファイルを変更した後に、プロファイラーを再実行してレポートを比較します。

  3. 最も頻繁に呼び出された行または最も時間を要した行を変更して、パフォーマンスを向上させることができるかどうかを判断します。

    たとえばループ内に load ステートメントがある場合はループを呼び出すたびに load が呼び出されます。load ステートメントをループの前に配置し、1 回だけ呼び出されるようにすると時間を節約できます。

  4. ファイルへのリンクをクリックし、パフォーマンスの向上を期待できると識別できる変更を加えます。ファイルを保存し、clear all を実行します。プロファイラーを再度実行して、元のレポート結果と比較します。コードに依存しない固有の時間変動がある点に注意してください。まったく同じコードを 2 回プロファイリングする場合でも、それぞれの結果がわずかに異なる場合があります。

  5. このプロセスを繰り返して、性能の改善を続けます。

プロファイリングをデバッグ ツールとして使用

プロファイラーは、コード内の問題を分離させる場合に便利なツールです。

たとえば、ファイルの特定の部分が実行されなかった場合、詳細レポートを見てどの行が実行されたかを確認します。詳細レポートで、問題の箇所を特定できることがあります。

実行されなかった行を表示して、そのコードを実行するテスト ケースの開発に役立てることができます。

プロファイリング時にファイルでエラーが発生すると、プロファイラーによってレポートに結果の一部が示されます。何が実行され、何が実行されなかったかを知ることができ、問題を分離するうえで役立ちます。同様に、Ctrl+C キーを使用して実行を停止しても、これを実行できます。Ctrl+C の使用は、ファイルの実行が予想時間より長くかかる場合に有効です。

馴染みのないファイルを理解するためのプロファイリングの使用

自分で作成していなかったり、あまり馴染みのない長い MATLAB コード ファイルの場合は、プロファイラーを使って、ファイルが実際にどのように機能するかを知ることができます。プロファイラー詳細レポートを使って、呼び出された行を見ることができます。

作成するものと類似した既存の GUI ツール (またはファイル) が存在する場合は、プロファイリングを開始し、そのツールを使ってから、プロファイリングを停止します。プロファイラー詳細レポートを調べて、どの関数と行が実行されたかを見ることができます。これは、作成するコードに最も似ているファイルの中からコード行を決定する際に便利です。

プロファイラーの使い方

プロファイラーは、パフォーマンスを向上するために、コードのどの部分を変更するべきかを決定する役に立ちます。プロファイラーとは、ファイルが時間を消費している部分を示すツールです。この節では、次のトピックを取り上げます。

プロファイラーが生成するレポートの詳細は、「プロファイル概要レポート」と「プロファイル詳細レポート」を参照してください。

プロファイラーを開く

プロファイラーは、さまざまな方法で開くことができます。

  • コマンド履歴ウィンドウで 1 つまたは複数のステートメントを選択し、右クリックしてコンテキスト メニューを表示し、[コードのプロファイル] を選択する

  • コマンド ウィンドウで「profile viewer」と入力します。

プロファイラーの実行

MATLAB コード ファイルまたは 1 行のコードをプロファイリングするには、次の操作を実行します。

  1. Intel® マルチコア チップをシステムが使用している場合は、CPU の稼動数を 1 つに制限することを検討してください。

    詳細は、以下のいずれかを参照してください。

  2. コマンド ウィンドウで "profile viewer" と入力します。

  3. プロファイラーで以下のいずれかを行います。

    • 現在の MATLAB セッションでプロファイリングしていないステートメントの場合は、次の操作を実行します。

      [実行するコード] フィールドに、実行するステートメントを入力します。

      たとえば、MATLAB 例に提供された Lotka-Volterra 例 (lotkademo) を実行できます。

      [t,y] = ode23('lotka',[0 2],[20;20])
      
    • 現在の MATLAB セッションで既にプロファイリングしているステートメントの場合は、次の操作を実行します。

      1. リスト ボックスからそのステートメントを選択します。MATLAB は自動的にそのコードのプロファイリングを開始します。

      2. 手順 5 にスキップします。

  4. [プロファイル開始] をクリックします。

    プロファイラーを実行中、[プロファイル時間] インジケーターは緑色で表示され、レポート秒数が増えていきます。[プロファイル時間] インジケーターは、プロファイラー ウィンドウの右上に表示されます。

    プロファイラーが終了すると、[プロファイル時間] インジケーターは黒になり、プロファイラーの実行時間が表示されます。プロファイルしたステートメントの結果は、コマンド ウィンドウで実行したように表示されます。

    この時間は、ステートメントの実行にかかった実際の時間ではありません。[プロファイル開始] をクリックしてからプロファイリングが停止するまでに経過した、時計の時間 (または tic/toc) です。レポートされた時間が予想と大きく異なる場合、たとえば簡単なステートメントに対して数百秒異なる場合は、実際よりもプロファイリングを長く行ってしまった可能性があります。これはプロファイラーの統計で報告された時間と一致しません。プロファイラーの統計は経過時間ではなく既定で cpu 時間に基づいています。経過時間のプロファイル統計を表示するには、「関数 profile を使ってプロファイラーに使用される時間タイプを変更する」で説明されているように、関数 profile-timer real オプション付けて使用してください。

  5. プロファイリングが終了すると、プロファイラー ウィンドウにプロファイル概要レポートが表示されます。このレポートの詳細は、「プロファイル概要レポート」を参照してください。

  6. 手順 1 で CPU の稼動数を制限した場合は、元の設定にリセットします。

Intel マルチコア プロセッサ — Windows システム上の最も正確なプロファイリングの設定-  Intel マルチコア チップをシステムが使用しており、CPU 時間でプロファイルする場合は、プロファイルを開始する前に CPU の稼動数を 1 に設定してください。これにより、プロファイルは最も正確で効果的になります。

  1. Windows® タスク マネージャーを開きます。

  2. [プロセス] タブ上で MATLAB.exe を右クリックし、[関係の設定] をクリックします。

    [プロセッサの関係] ダイアログ ボックスが開きます。

  3. [プロセッサの関係] ダイアログ ボックスで現在の設定を確認し、CPU を 1 つ選択して残りの CPU のチェック ボックスをオフにします。

    [プロセッサの関係] ダイアログ ボックスは次の図と同様になります。

  4. [OK] をクリックします。

  5. プロセッサの関係の変更を確認できるようにプロファイラーの状態をリセットします。この処理を行う最も簡単な方法はコマンド ウィンドウで以下を実行し、プロファイラー時間設定を real に変更して cpu に戻します。

    profile -timer real
    profile -timer cpu

プロファイルが終了した後、忘れずに上記のステップを再実行して、CPU 数の設定を元の設定に戻します。手順 3 の [プロセッサの関係] ダイアログ ボックスを元の選択にして再保存してください。

Intel マルチコア プロセッサ — Linux システム上の最も正確なプロファイリングの設定-  Intel マルチコア チップをシステムが使用しており、CPU 時間でプロファイルする場合は、プロファイルを開始する前に CPU の稼動数を 1 に設定してください。これにより、プロファイルは最も正確で効果的になります。

たとえば、プロセッサの関係を 1 に設定するには、次のように Linux® taskset コマンドを使用できます。

  1. 現在実行している MATLAB インスタンスのプロセス ID (PID) を取得します。

    ps -C MATLAB
    PID   TTY   TIME      CMD
    8745  pts/1 00:00:50  MATLAB

    この例の PID は 8745 です。

  2. Linux taskset コマンドを呼び出して、MATLAB プロセスに対する現在の CPU の稼動数を取得します。

    taskset -pc 8745
    pid 8745's current affinity list: 0-3 

    -p オプションは、新しいタスクを作成する代わりに、既存の PID で taskset が作動することを指定します。-c オプションはプロセッサ数を表示します。

  3. Linux taskset コマンドを再度呼び出し、今回は MATLAB プロセスに対するプロセッサの関係を 1 つの CPU (つまり CPU #0) に設定します。

    taskset -pc 0 8745
    pid 8745's current affinity list: 0-3  
    pid 8745's  new affinity list: 0  

    taskset の構文の詳細は、Linux ターミナルから man taskset を実行してください。

    プロセッサの関係の変更を確認できるようにプロファイラーの状態をリセットします。この処理を行う最も簡単な方法はコマンド ウィンドウで以下を実行し、プロファイラー時間設定を real に変更して cpu に戻します。

    profile -timer real
    profile -timer cpu

プロファイルが終了した後、忘れずに上記のステップを再実行して、CPU 数の設定を元の設定に戻します。上記のステップを再実行して、手順 2 の CPU 数の設定を元の設定に戻してください。

グラフィカル ユーザー インターフェイスのプロファイリング

Signal Processing Toolbox™ に含まれるフィルターの設計と解析ツールなどのグラフィカル ユーザー インターフェイスにもプロファイラーを実行できます。GUIDE で作成したインターフェイスなどのプロファイラーも実行できます。

グラフィカル ユーザー インターフェイスをプロファイリングするには、次の操作を実行します。

  1. プロファイラーの [プロファイル開始] をクリックします。[このコードを実行] フィールドにコードが表示されないことを確認します。

  2. グラフィカル ユーザー インターフェイスを起動します。(プロファイルに起動時の処理を含めない場合は、グラフィカル インターフェイスを起動するまで、手順 1 の [プロファイル停止] をクリックしないでください)。

  3. グラフィカル ユーザー インターフェイスを使用します。作業が終了したらプロファイラーの [プロファイル停止] をクリックします。

    プロファイラーに、プロファイル概要レポートが表示されます。

コマンド ウィンドウからステートメントをプロファイリング

複数のステートメントをプロファイリングするには、次の操作を実行します。

  1. プロファイラーで [このコードを実行] フィールドをクリアして、[プロファイル開始] をクリックします。

  2. コマンド ウィンドウにプロファイリングするステートメントを入力し、実行します。

  3. ステートメントすべてを実行したらプロファイラーの中の [プロファイル停止] をクリックします。

    プロファイラーに、プロファイル概要レポートが表示されます。

プロファイラーのフォントの変更

プロファイラーで使用されるフォントを変更するには、次の操作を実行します。

  1. [ホーム] タブの [環境] セクションで、[設定] をクリックします。

  2. 左側のペインで [フォント][カスタム] を選択します。

  3. [デスクトップ ツール] の下で [プロファイラ―および比較ツール] を選択します。

  4. [使用するフォント] の下で、フォントを選択します。詳細は、ダイアログ ボックスの [ヘルプ] ボタンをクリックしてください。

  5. [適用] または [OK] をクリックします。プロファイラーのフォントは変更を反映します。

プロファイル概要レポート

概要レポートには、実行全体に関する統計が表示され、呼び出された各関数の統計概要が出力されます。レポートは、次の値を 4 列に表示します。

  • 関数名 - プロファイルされた関数に呼び出されるすべての関数の一覧。最初に表示されるとき、関数は、処理時間の長い順にリストされます。関数名をアルファベット順に並べ替えるには、列見出しの [関数名] のリンクをクリックします。

  • 呼び出し - プロファイリングがオンのときに関数が呼び出される回数。関数が呼び出される回数順にレポートと並べ替えるには、列見出しの [呼び出し] のリンクをクリックします。

  • 合計時間 — 呼び出されたすべての子関数を含め、関数に消費した合計時間。時間は、子関数に要する時間を含みます。関数を所要時間順に並べ替えるには、列見出しの [合計時間] のリンクをクリックします。既定の初期ページでは、概要レポートは [合計時間] が長い順に並べ替えられたプロファイリング情報を表示します。プロファイラー自体もある程度時間を使い、それが結果に含まれている点に注意してください。実行時間が非常に短いファイルの合計時間は 0 になる場合があります。

  • 自己時間 - 呼び出された子関数の時間を除く、関数に消費した合計時間。MATLAB はプロファイルのオーバーヘッド時間を測定できた場合は、自己時間からその時間を差し引きます(MATLAB はプロファイル詳細レポートの各行に対する時間や合計時間からプロファイル オーバーヘッド時間を差し引きます)。

    プロファイラーのページの下部には、MATLAB がプロファイル オーバーヘッドを測定できるかどうかによって以下のいずれかのメッセージが表示されます。

    • 自己時間は次の時間を差し引いた、関数が消費した時間です。

      • 子関数が消費した時間

      • プロファイラーのプロセスのオーバーヘッドの大部分

      現在の実行では自己時間のプロファイル オーバーヘッドの 0.240 秒が差し引かれています。自己時間の残りのオーバーヘッドの時間は測定できないため、差し引かれていません。

    • 自己時間は子関数が消費する時間を差し引いた、関数の消費した時間です。自己時間はプロファイラーのプロセスのオーバーヘッドもある程度含みます。

    関数をこの時間が長い順に並べ替えるには、列見出しの [自己時間] のリンクをクリックします。

  • 合計時間プロット - 合計時間と比較した自己時間のグラフィックス表示。

次の図は、「例:関数 profile の使用」で使用した Lotka-Volterra モデルの概要レポートです。

概要レポートでは、以下の作業を実行できます。

  • [印刷] ボタン をクリックして、印刷する。

  • [関数名] 列の関数名をクリックして、特定の関数の詳細情報を得る。詳細は、「プロファイル詳細レポート」を参照してください。

  • 列の名前をクリックして特定の列で並べ替える。たとえば、 をクリックして、概要レポートに含まれる関数名で並べ替えます。

プロファイル詳細レポート

プロファイル詳細レポートには、プロファイリング中に呼び出された選択したファイルに対するプロファイリング結果が表示されます。プロファイル詳細レポートは、7 つのセクションで構成されます。以下のトピックで各セクションを説明します。既定の設定では、プロファイル詳細レポートは、7 つすべてのセクションを含みますが、関数によってはデータを含まないセクションがあることがあります。プロファイル詳細レポートからプロファイル概要レポートに戻るには、プロファイル ウィンドウのツール バーで をクリックします。

次のトピックでは、プロファイル詳細レポートの表示と使用に関する詳細を説明します。

プロファイル詳細レポートを開く

プロファイル詳細レポートを開くには、次の操作を実行します。

  1. プロファイラーの使い方」で説明したように、プロファイル概要レポートを作成します。

  2. プロファイル概要レポートに示された関数をクリックします。

詳細レポート表示のコンテンツの制御

プロファイル詳細レポートに含めるセクションを指定するには、次の操作を実行します。

  1. レポート上部のチェック ボックスからレポート オプションを選択します。

  2. [更新] ボタンをクリックします。

プロファイル詳細レポート ヘッダー

詳細レポートには次のヘッダーが含まれます。

  • プロファイリングした関数名

  • 親関数でプロファイリングする関数を呼び出した回数

  • プロファイリングする関数が使用した時間

  • 既定のテキスト エディターで関数を開くためのリンク

  • レポートを別のウィンドウへ表示するためのリンク

    レポートをコピーすると、ファイルの変更、更新ファイルに対するプロファイラーの実行、2 回の実行に対するプロファイル詳細レポートの比較に役立ちます。MathWorks® の製品で提供されているファイル (つまり matlabroot/toolbox フォルダーのファイル) は変更しないでください。

親関数

[親関数] セクションを詳細レポートに含めるには、[親関数を表示] チェック ボックスをオンにします。レポートのこのセクションは、親関数に関する情報と、それらの詳細レポートへのリンクを提供します。親関数名をクリックして、その親関数の詳細レポートを開きます。

最も多くの時間が費やされた行

詳細レポート内で最も所要時間が多いコードの行の情報を含めるには、[時間のかかる行を表示] チェック ボックスをオンにします。

子関数

詳細レポートに [子関数] セクションを含めるには、[子関数の表示] チェック ボックスをオンにします。レポートのこのセクションは、プロファイリングされた関数によって呼び出されるすべての関数をリストします。呼び出される関数が MATLAB コード ファイルの場合は、その名前をクリックすることによって関数のソース コードを表示することができます。

コード アナライザー結果

詳細レポート表示に [コード アナライザー結果] セクションを含めるには、[コード アナライザー結果の表示] チェック ボックスをオンにします。レポートのこのセクションは関数の問題と潜在的な改善点に関する情報を提供します。

ファイル カバレッジ

詳細レポート表示に [カバレッジの結果] セクションを含めるには、[ファイル カバレッジを表示] チェック ボックスをオンにします。レポートのこのセクションは、プロファイラーの起動中に実行されたコードの行数に関する統計情報を提供します。

関数リスト

詳細レポート表示に [関数リスト] セクションを含めるには、[関数リストを表示] チェック ボックスをオンにします。ファイルが MATLAB コード ファイルの場合、プロファイル詳細レポートには、3 つの列が含まれます。

  • 1 列目は、各行の実行時間の一覧を示します。

  • 2 列目は、その行が呼び出された回数を示します。

  • 3 列目は、関数のソース コードを示します。

関数リストのテキストの色は、次の内容を表します。

  • 緑色 — コメント行

  • 黒 — 実行されたコード行

  • 灰色 — 実行されなかったコード行

プロファイル詳細レポートでは、既定で、実行時間が最も長くかかったコード行が強調表示されます。強調色が濃いほどコード行の実行時間が長くなります。

他の規則に基づいてコード行を強調表示するように変更するには、詳細レポートのこのセクションのドロップダウン メニューを使用します。選択したドロップダウン オプションに応じて、強調色が変更されます。ここでは、呼び出し回数が最も多いコード行、実行された (実行されなかった) コード行、コード アナライザーにより呼び出された行を強調表示するように選択することができます。[なし] を選択すると、強調表示がオフになります。

次の図は、ドロップダウン メニューから [カバレッジ] を選択したときに、青色で強調表示された行を示します。

関数 profile

プロファイラーは、関数 profile の実行結果に基づいています。関数 profile は、GUI では使用できないいくつかの機能を提供します。たとえば、関数 profile を使うと、CPU 時間の代わりに時刻でステートメントの実行時間を測定し、統計結果を表示するように指定できます。

この節では、関数 profile に関する以下のトピックを説明します。

例:関数 profile の使用

以下の例は profile の実行方法を示します。

  1. profile を起動するには、コマンド ウィンドウに以下を入力します。

    profile on
    
  2. MATLAB コード ファイルを実行します。次の例では、Lotka-Volterra の捕食-被捕食者個体モデルを実行します。このモデルの詳細を表示する場合は lotkademo と入力し、デモンストレーションを実行してください。

    [t,y] = ode23('lotka',[0 2],[20;20]);
    
  3. プロファイル レポートを生成し、プロファイラー ウィンドウに表示します。profile を一時停止します。

    profile viewer 
    
  4. 既存の統計をクリアしないで、profile を再起動します。

    profile resume
    

    これで関数 profile は、追加実行するファイルの統計を続けて集計する準備が完了しました。この新しい統計が前の手順で生成された統計に加えられます。

  5. 統計の集計が終了したら、profile を停止します。

    profile off
    
  6. プロファイル データを表示するには 'info' 引数を指定して profile を呼び出します。関数 profile はデータを構造体に返します。

    p = profile('info')
    
    p = 
    
          FunctionTable: [33x1 struct]
        FunctionHistory: [2x0 double]
         ClockPrecision: 1.0000e-03
             ClockSpeed: 3.0000e+09
                   Name: 'MATLAB'
               Overhead: 0

    FunctionTable は統計が 33 個の関数から集められたことを示します。

  7. プロファイル レポートを保存するには関数 profsave を使います。この関数はプロファイル情報を、構造体 pFunctionTable にリストされた各関数について別の HTML ファイルに保存します。

    profsave(p)
    

    既定の設定では profsaveprofile_results という現在のフォルダーのサブフォルダーにこれらの HTML ファイルを置き、概要レポートをシステム ブラウザーに表示します。profsave のオプションの 2 番目の引数として、別のフォルダー名を指定することができます。

関数 profile の結果へのアクセス

関数 profile は結果を構造体に返します。次の例は、結果を表示する方法を示したものです。

  1. history オプションを指定して profile を開始するには、コマンド ウィンドウで次のように入力します。

    profile on -history
    

    history オプションは、レポートが一連の関数に関する情報を、プロファイルング中に入力および出力されたとおりに含むことを指定します。

  2. MATLAB コード ファイルを実行します。次の例では、Lotka-Volterra の捕食-被捕食者個体モデルを実行します。このモデルの詳細を表示する場合は lotkademo と入力し、デモンストレーションを実行してください。

    [t,y] = ode23('lotka',[0 2],[20;20]);
    
  3. プロファイルを停止します。

    profile off
    
  4. プロファイル結果を含む構造体を取得します。

    stats = profile('info')
    stats = 
    
          FunctionTable: [33x1 struct]
        FunctionHistory: [2x880 double]
         ClockPrecision: 1.0000e-03
             ClockSpeed: 3.0000e+09
                   Name: 'MATLAB'
               Overhead: 0
  5. FunctionTable フィールドは構造体の配列で、各構造体は MATLAB 関数 (M-function)、MATLAB ローカル関数、MEX 関数、MATLAB 組み込み関数 (builtin オプションが指定されているので) を表します。

    stats.FunctionTable
    
    ans = 
    
    33x1 struct array with fields:
        CompleteName
        FunctionName
        FileName
        Type
        Children
        Parents
        ExecutedLines
        IsRecursive
        TotalRecursiveTime
        PartialData
        NumCalls
        TotalTime
  6. FunctionTable の 2 番目の構造体を表示します。

    stats.FunctionTable(2)
    
    ans = 
    
              CompleteName: [1x95 char]
              FunctionName: 'ode23'
                  FileName: [1x89 char]
                      Type: 'M-function'
                  Children: [6x1 struct]
                   Parents: [0x1 struct]
             ExecutedLines: [139x3 double]
               IsRecursive: 0
        TotalRecursiveTime: 0
               PartialData: 0
                  NumCalls: 1
                 TotalTime: 0.0920
  7. profile によって生成される履歴データを見るには、FunctionHistory を参照します。たとえば stats.FunctionHistory を参照します。履歴データは、2 行 n 列配列です。1 行目は論理値を含み、0 (ゼロ) は関数に入ることを意味し、1 は 関数から出ることを意味します。2 行目は FunctionTable フィールドのインデックスによって、実行または終了された関数を識別します。履歴データの書式付き表示の作成方法は、profile のリファレンス ページの例を参照してください。

関数 profile のレポートの保存

プロファイル レポートを保存するには関数 profsave を使います。

この関数は、stats 構造体の FunctionTable フィールドにリストされた関数についてプロファイル情報を別々の HTML ファイルに保存します。

profsave(stats)

既定の設定では profsaveprofile_results という現在のフォルダーのサブフォルダーにこれらの HTML ファイルを置きます。profsave のオプションの 2 番目の引数として、別のフォルダー名を指定することができます。

profsave(stats,'mydir')

関数 profile を使ってプロファイラーに使用される時間タイプを変更する

既定の設定では、プロファイラー概要レポートは実時間 (時計の時間) ではなく、CPU 時間を使用して生成されます。以下の例は、MATLAB が実時間を使用するように設定する方法を説明します。

以下の例のように関数 profile-timer real オプションを使用することで、プロファイラーが実時間を使用するように指定することができます。

  1. プロファイラーが開いている場合はプロファイラーを閉じます。プロファイラーをプロンプトで実行中の場合はプロファイルを停止します。

  2. コマンド ウィンドウに以下を入力することで、タイマーを実時間に設定できます。

    profile on -timer real
    
  3. プロファイリングするファイルを実行します。次の例では、Lotka-Volterra の捕食-被捕食者個体モデルを実行します。

    [t,y] = ode23('lotka',[0 2],[20;20]);
    
  4. コマンド ウィンドウに以下を入力してプロファイラーを開きます。

    profile viewer
    

    プロファイラーが開き、次の図のように実時間を使用していることを示します。

  5. タイマーを元に戻して CPU 時間を使用するようにするには、以下を実行します。

    1. プロファイラーを閉じます。プロファイラーをプロンプトで実行中の場合はプロファイルを停止します。

    2. コマンド ウィンドウに以下を入力します。

      profile on -timer cpu
      
    3. プロファイラーを再度開くためにコマンド ウィンドウに以下のように入力します。

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