1

さらに多くの関数を呼び出す関数があります。プロファイラーを使用して、コードのどの部分が最も時間がかかるかを特定したいと考えています。

関数呼び出しの代わりに、セルで並べ替えられたプロファイルの概要を取得することは可能ですか?

たとえば、プロファイラーにこれを出力させることは可能ですか:

  Cells    Calls   Total time ...  
  Part 1       1         .... ...
  Part 2       1         .... ...

それ以外の:

  Function name   Calls   Total time ...  
  func1               1         .... ...
  func2               1         .... ...

次のコードの場合:

%% Part 1:
a = 1;
b = 2;
X = func1(a,b);

%% Part 2:
c = a+b;
Y = func2(c,b);

ありがとう!

4

1 に答える 1

2

さて、次のように、いつでも各セルのプロファイリング情報を抽出できます。

%% Part 1
profile on
%// Some code...
profile off
S1 = profile('info');

%% Part 2
profile on
%// Some more code...
profile off
S2 = profile('info');

構造体S1S2各セルのプロファイリング情報を保持する必要があります。プロファイリング情報をリセットするには、各コード セルの最初と最後にprofile onandを忘れずに入力してください。profile off

プロファイル情報を HTML 形式で表示するには、 を使用できますprofview。例えば:

profview(0, S1)

FunctionTable最初の引数は、プロファイル ビューアに表示する関数に対応するプロファイル情報構造体のフィールドのインデックスです。

于 2013-05-12T14:10:08.793 に答える