03-10-2009 10:07 AM - edited 03-10-2009 10:09 AM
Hardware: WinXP-32bit, 4GB Memory, Intel Q6600.
"/PAE" option in boot.ini.
Windows see 3.23GB.
Labview 8.5
If i try to increase a queue size more than ~1.8GB Labview "Not enough memory" error appear.
vi attached.
Is there any solution to this?
03-10-2009 10:50 AM
03-10-2009 11:05 AM
03-10-2009 11:06 AM - edited 03-10-2009 11:13 AM
Are you setting the size of the queue to 1.8m elements? If so, what is the data type of your queue? the memory required to preallocate a queue of doubles would be different than the memory required for a queue of U8.
Also, I think LabVIEW can only request up to 2 GB from Windows according to this Knowledge base entry.
03-10-2009 11:14 AM
This is just a shot in the dark but have you tried an array of queues and limit the queues to one entry in each?
Please let me know if you can get more than 1.8 Gig.
The best i ever did was 1.3 without using the 3 Gig aware switch.
Ben
03-10-2009 11:17 AM
03-10-2009 11:27 AM
jmcbee wrote:
Ben, can you explain your thinking behind the array of queues? I am guessing that I will learn something from your explanation.
You want me to explain?!
Queues can be transfered "in-place" so the the queue ref may be working like a pointer that can be used to locate a pointer to where the data sits. The OP indicated he had the 3Gig aware switch turned on (I think that what that ref indicates) so the message may be due to not being able to find a contiguous block that large. Arrays have to be contiguous.
So I was thinking that the array would only store the refs to A queues. Each Queue would only contain one value. So soemwhere along the line that structure could be implemented using a bunch of small memory blocks instead one big one.
I did say it was a shot in the dark.
Ben
03-10-2009 11:28 AM
Hey all, take a look at the attached VI ..
im adding to the queue in loop 1024*1024*U8=1Mbyte each loop.
this is very simple and anyone can try this to see his limit.
TaskManager show ~2GB virtual memory when the error occur. im guessing its because labview enviroment take some memory...
03-10-2009 11:37 AM
Its one Queue, each element is 2D Array (1024*1024*U8=1MByte this example)
03-10-2009 12:07 PM - edited 03-10-2009 12:08 PM