ドキュメンテーション

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

コードのボトルネックの検出

実行時間が最もかかる関数を特定するには、コード プロファイラーを使用します。計算およびアルゴリズムの実行時間を可能な限り減らすことでパフォーマンスを改善できます。

コードを最適化したら、以下の手法を使用してオブジェクトの作成および表示の更新にかかるオーバーヘッドを短縮します。

たとえば、関数 myPlot を使用して、10 行 1,000 列の要素からなる配列をプロットするとします。

function myPlot
   x = rand(10,1000);
   y = rand(10,1000);
   plot(x,y,'LineStyle','none','Marker','o','Color','b');
end
profile on
myPlot
profile viewer

上記のコードをプロファイルすると、関数 myPlot で最も時間がかかっていることがわかります。

配列 x および y には 1,000 列のデータが含まれているため、1,000 個の line オブジェクトがこのプロット関数により作成されます。この場合、10,000 個のデータ点をもつ 1 本のラインを作成することで同じ結果を得ることができます。

function myPlot
   x = rand(10,1000);
   y = rand(10,1000);
   % Pass x and y as 1-by-1000 vectors
   plot(x(:),y(:),'LineStyle','none','Marker','o','Color','b');
end
profile on
myPlot
profile viewer

この場合は、オブジェクト作成時間が最大の原因です。

通常、時間のかかる操作を回避したり最小限にしたりする方法を把握することで、実行速度を改善できます。このツールを使用してパフォーマンスを改善する方法については、関数 profile のドキュメンテーションを参照してください。