11-20-2008 09:43 AM - edited 11-20-2008 09:43 AM
I'm currenting coding a really large program with multiple threads (over 5) and large memory ( > 1 gig) and buffer utlization. My program runs great for a while, but all the sudden DAQ goes away, and I'm just left with a frozen up program.
I can't stop or do anything. The only way to kill the Labview is with ctrl alt delete.
I'm hopping to get my program to run 24/7. I don't think windows is the problem, b/c as soon as I kill Labview and rerun I get everything back. What should I do to debug this? I am using Labiew 8.6.
11-20-2008 10:36 AM
Could you by any chance post a screenshot of your code (png)?
So we can have a look at the coding style and implementation techniques used.
11-20-2008 10:48 AM
11-20-2008 12:04 PM
11-20-2008 12:31 PM
without seeing your VI, we can only speculate.
you mentioned DAQ work. Do you close every reference you open? do you have any arrays that build and build and build? I would guess there is some memory leak in there.
11-20-2008 12:36 PM
Yea I have a lot of large arrays and lots of build arrays. I've lowered the sizes of my buffers and see if that helps. Will all my buffers filled, windows task manager shows me at 542,368 K and not growing. All 6 of my CPUs are at about 60% and holding.
The program is running smoothly. I've disabled my logging portion. I'll post some screen shots in a second.
11-20-2008 12:39 PM
Britoa wrote:without seeing your VI, we can only speculate.
you mentioned DAQ work. Do you close every reference you open? do you have any arrays that build and build and build? I would guess there is some memory leak in there.
Well let me jump on the speculation wagon as well.
I'm pretty close to you with my theory.but here it goes.
Over time the DAQ is falling behind because of re-allocating memory and eventually the DAQ buffer over-runs.
Maybe a producer/consumer combined with strategic pre-allocation of buffers.
But I'm just specuating!
Be
11-20-2008 12:48 PM
Okay you guys are going regret looking at these pictures. Yes I'm using a producer, consumer, consumer, consumer x like 10 model. Lots of ffts and logging + GUI interactions
Only 3 shreenshots is not going to describe it.
11-20-2008 12:51 PM - edited 11-20-2008 01:00 PM
Here is a zip file of some screenshots. This probably covers 30% of the entire things. I'm running this on a server 6 CPU 3 TB of harddrive and 4 gig of memory.
If you are curious what this program is.. It collects data from an antennea by loging statstical information, produces a waterfall display, classify and indentify transmitter, and other jiffy things.
I'm pretty sure there are no memory leaks due to that the memory grows. If I set my buffer to large, I do get not enough memory messages, but I'm not currently. It's just dying without any errors.
11-20-2008 02:32 PM
Your application could really use a redesign. I think that ultimately it should even be able to run on less a system than you describe
How much data do you acquire per second?
How many channels are acquired and how are they processed?
Does everything have to be processed all the time, or only when the user want to display certain analysis'.
I can see the irony of dying the block diagram with wires.