GUI profiler: slowest at FileOpenCh​ooser.doSh​owDialog

조회 수: 1 (최근 30일)
katerina
katerina 2014년 7월 10일
댓글: katerina 2014년 7월 11일
I am making a fairly large GUI (not a whole lot of data, but different GUI screens and a lot of tables, buttons, etc.), and as I add more functionality, it just gets slower and slower. I just ran the profiler, and the highest "self-time" section was FileOpenChooser.doShowDialog at 9.062s. I wonder what might be the cause for this - is it just the amount of GUI buttons and tables that I use? I'm not sure what information I can provide to help further on here.
As a note, I'm a bit confused about using the uitabs (so I'm not currently doing that),but I like using GUIDE since there are so many parts to the GUI, so I can set it up visually which I like. As the GUI is now, it's like a poor version of tabs. Based on what configuration the user seects, a different set of uipanels will become visible, so when I see the GUI in guide, it's just all the uipanels overlapping. I realize this is not good. I'd like to be able to use guide to make my different screens for the user in a more efficient way, but I'm just not sure what the best method is.I don't want one GUI to close and another to open -- it should be a seamless transition.
Sorry this is sort of a ramble. Any input would be appreciated.
  댓글 수: 5
Geoff Hayes
Geoff Hayes 2014년 7월 11일
@katerina: how many widgets (roughly) are a part of your GUI, and how many lines of code in the m file? (Since you can't attach the code.)
katerina
katerina 2014년 7월 11일
@jan: it's slow to open! thanks for asking. the processing is not bad.
@geoff: After cutting out ~300 lines by combining radiobutton callbacks, my total program length is (rough estimate) ~1200 lines with 10 function files, and the GUI has maybe 60 radiobututtons/checkboxes,7 tables, and a few other things, including some listboxes. At some point, I will either be making this an App or compiling it to be a standalone program. I wonder if this minor slowness will be fixed when one of those happens?

댓글을 달려면 로그인하십시오.

답변 (1개)

Robert Cumming
Robert Cumming 2014년 7월 11일
편집: Robert Cumming 2014년 7월 11일
This could be misleading as the time (FileOpenChooser.doShowDialog) also covers the time it takes the user to select the file and then select okay.
Your gui may be slow if you have lot and lots of objects, including ones that are hidden or not been deleted properly.
Does restarting Matlab speed it up again (if so you have the equivalent of a memory leak and objects are not getting cleared/cleaned up properly).
Try:
objs = findobj ( 0 );
set(0,'showhiddenhandles','on');
allObj = findobj ( 0 );
this will show how many objects matlab knows about.
If you close your gui the number should return to 0.
  댓글 수: 3
Robert Cumming
Robert Cumming 2014년 7월 11일
Run the lines again when the gui is alive and again after you close the gui.
katerina
katerina 2014년 7월 11일
okay, the numbers did return to 0 after the program closed (thank god).

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Migrate GUIDE Apps에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by