Re: A Question about Wizard Load Times
After some back and forth emails with Darren and some more investigation there are three things that are affecting the load time of the wizard, one of which is out of my control. They are:
1. LabVIEW IDE calling of a Wizard
2. Time to load classes that are used into memory
3. Time to lookup QControl Class Hierarchy and load into the tree
Number 1 is out of my control but seem to be only a small portion of the time (<0.5 sec).
I have been able to improve times based off of #2 by reducing the number of classes loaded. I removed dependencies on the Icon API from the Wizard and only use it in the actual creation script. I then separated the Wizard from the creation script. Now the only classes loaded are the Wizard itself, the QControl Info class (that separates the Wizard from the creation script, and the QControl used in the Wizard. This reduced the load time by about 2 seconds on my system. (From 6 seconds to about 4 seconds).
For #3, I looked into caching the contents of the QControl folder and doing some sort of quicker check to see if it had changed. I still might do this but first I implemented an asynchronous load of the tree. Therefore, it allows the Wizard to open while the QControl class folder is still being read and tree control loaded. If the user clicks Next quickly then they will see a loading message. Most of the time I was not able to click next fast enough to see the loading message. This cut off another 1.5 seconds off the load by shifting the load “location”. I still might implement the caching option but this already make the user experience better.
As of now I have the load only takes about 2 to 2.5 seconds.
Quentin "Q" Alldredge
Q Software Innovations, LLC (QSI)
CLA, LabVIEW Champion
NI Alliance Partner