我一直在编写一些 MATLAB GUI(不使用 GUIDE),主要用于查看图像和一些其他简单的操作(例如选择点和从图像中绘制一些数据)。
当 GUI 启动时,所有操作都会快速执行。然而,随着 GUI 的使用(显示来自 3D/4D 体积的不同帧并执行上述操作),它开始逐渐变慢,达到一个对于普通使用来说太慢的程度。
我想听听一些关于:
- 找出GUI 变慢原因的可能策略;
- 避免这种情况的良好 MATLAB GUI 编程实践;
- 解决这些问题的可能参考资料。
我正在使用 set/getappdata 将变量保存在 GUI 的主图中并在函数之间进行通信。
(我希望我能提供一个最小的工作示例,但我认为它不适合这种情况,因为这只发生在稍微更复杂的 GUI 中。)
非常感谢。
编辑:( 使用探查器报告一些发现:)
我在两种情况下使用了探查器:
- 启动 GUI 后立即;
- 在玩了一段时间之后,直到它开始变得太慢。
我在两个分析操作中执行了完全相同的过程,这只是简单地在 GUI 周围移动鼠标(两次相同的“路径”)。
探查器结果如下:
impixelinfo
我在解释这些结果时遇到了困难......为什么在第二种情况下某些函数(例如)的调用次数如此之大?
有什么意见吗?
非常感谢。