LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Slow startup of a large application

Solved!
Go to solution

Andrej

Hi,

 

I am developing a large application (with more than 3000 VIs) which consists of a main window and 20 modules (subwindows or subapplications) that are called from the main window. Each subwindow could be also application by itself, but this is not really important here. The problem is that when I start exe it takes about 30 seconds unit main window is shown. I also placed an animation indicating that the application is starting, but it pops up in the last second of the startup. Why it takes so much time to start up? I forgot to mention that in this case all the VIs were statically linked. Then I dynamically linked (Reload for each call) all the 20 modules and start up time decreased to 5 seconds, but now it takes 15 seconds to start each module. Is this expected behavior? Should I use some other techniques to speed things up? 

 

Any help is appreciated, 

0 Kudos
Message 1 of 6
(2,997 Views)

Yes that's expected behaviour, the program wont start until all statically linked information is loaded.

 

What you can do is a small vi that dynamically links the big application as a splash screen. This will start fast as it's no linked  vi's. The big application will then start in 30 seconds time but you'll have some information showing it has actually started.

 

/Y 

G# - Award winning reference based OOP for LV, for free! - Qestit VIPM GitHub

Qestit Systems
Certified-LabVIEW-Developer
Message 2 of 6
(2,990 Views)

@Yamaeda wrote:

Yes that's expected behaviour, the program wont start until all statically linked information is loaded.

 

What you can do is a small vi that dynamically links the big application as a splash screen. This will start fast as it's no linked  vi's. The big application will then start in 30 seconds time but you'll have some information showing it has actually started.

 

/Y 


MS Office, Adobe, LabVIEW all use the same technique-  Not a bad use for a About.vi in your build spec


"Should be" isn't "Is" -Jay
0 Kudos
Message 3 of 6
(2,985 Views)

Thank you both for yours suggestions.

 

Jeff, could you be more specific how to do that? I am not sure what was your idea.

 

Are there other tehniques to speed up applications?

 

Thanks,

Andrej

0 Kudos
Message 4 of 6
(2,974 Views)
Solution
Accepted by topic author andrej

From the Help file it is pretty easy to add a "About.vi" to your application.  You set this a the start-up vi and use it to dynamically call main.vi.  About.vi is lightweight and loads in no-time hiding the load time for main.vi.  just close About.vi by polling the run state of main or enqueueing a stop About.vi from main.vi when main is initialized. (playing with FP open properties can get some interesting effects)  Be cautious:  Help>>About will launch About.vi so you do want to do some checking in about (like if the Main FP is in memory DO NOT load it again).


"Should be" isn't "Is" -Jay
Message 5 of 6
(2,966 Views)

Thank you, that was helpful.

0 Kudos
Message 6 of 6
(2,958 Views)