主に画像の表示とその他の簡単な操作 (ポイントの選択や画像からのデータのプロットなど) のために、いくつかの MATLAB GUI ( GUIDE を使用しない) をプログラミングしています。
GUI が起動すると、すべての操作がすばやく実行されます。ただし、GUI を使用すると (3D/4D ボリュームとは異なるフレームを表示し、上記の操作を実行する)、次第に遅くなり始め、通常の使用には遅すぎるポイントに到達します。
以下に関する意見をお聞きしたいと思います。
- GUI が遅くなった理由を見つけるために考えられる戦略。
- これを回避するための適切な MATLAB GUI プログラミング プラクティス。
- これらの問題に対処する可能性のある参照。
set/getappdata を使用して、GUI のメイン フィギュアに変数を保存し、関数間で通信しています。
(最小限の実用的な例を提供できればと思いますが、これはやや複雑な GUI でのみ発生するため、この場合には適していないと思います。)
どうもありがとう。
編集: (プロファイラーを使用して調査結果を報告:)
私は次の 2 つの場面でプロファイラーを使用しました。
- GUI を起動した直後。
- しばらくいじってから、遅くなり始めるまで。
両方のプロファイリング操作でまったく同じ手順を実行しました.GUI上でマウスを動かすだけです(両方とも同じ「パス」)。
プロファイラーの結果は次のとおりです。
これらの結果を解釈するのに苦労しています... 特定の関数 ( などimpixelinfo
) の呼び出し数が 2 番目のケースで非常に多いのはなぜですか?
ご意見はありますか?
どうもありがとう。