03-07-2006 05:15 AM
03-07-2006 11:33 AM - edited 03-07-2006 11:33 AM
I'm not sure about the first part of your question. LabVIEW is highly binary and does a lot of memory allocations before even one VI is ready to be started. So maybe the memory manager is a problem. Another issue is that the Macintosh like resource file format that is used by LabVIEW to store its VIs etc. results in lots and lots of individual disk accesses with a rther random like character inside a single file. So if you can configure the read caching of your disk to use more memory this may significantly increase the speed of loading LabVIEW VIs or applications.
@Dennisvr wrote:I'm looking for (simple) ways to improve the loading times in a Linux LabVIEW executable. We're using a low performance, low cost CPU board, and loading times are terrible. The CPU is capable of doing everything after the application is loaded, but takes forever to get there.One of the problems is the size of the executable, that grows everytime you just look at it. Are there ways to create smaller executables? It runs from a Compact Flash card, which is ofcourse much slower than hard disk.Another problem is a dynamic vi, that is started for every TCP connection that connects to the application. It takes a long time to load, and connecting too fast can even effectively hang up the system. Starting a handler task takes about half a second, up to a few seconds for the first task.We're using the LabVIEW 7.1 runtime, system is a 300 MHz cyrix SBC, running from a Compact Flash.
Message Edited by rolfk on 03-07-2006 06:33 PM
03-08-2006 02:10 AM
03-08-2006 05:27 AM
Hi Dennisvr,
To improve startup time and load time of VI's you could try to first copy all files needed to a RAM disk, this way you would only need to access the slow flash disk once and then use the much faster RAM disk to load your executable. I'm no linux expert so I'm not sure if you could also get the LabVIEW Run-Time Engine to run from the RAM disk. This of course will require you to allocate part of your memory for this disk.
When building a executable most of the size reductions are already done for you, things like removing frontpanels, block diagrams and disabling debuging where possible. One section of a VI, the data area used for storing default control values and block diagram constats etc could become lardge when you have defaults values set for arrays, graphs, charts etc. or are using the same type of constants in your block diagram.
Regards,
Karsten
03-08-2006 07:00 AM
Thanx both for the reply by the way!
The ramdisk is a good option, it's quite easy to implement. However it didn't seem to matter very much, changes were hardly noticeable.
I looked at default values of variables some time ago, and didn't find anything special. It's worth another look though, it will take some time before I finish with this. I'll post results later.
Other suggestions are still welcome.
03-08-2006 09:52 AM