04-15-2009 10:16 AM - edited 04-15-2009 10:19 AM
KKnowles wrote:
They don't all need to be in memory at the same time. Am I not testing the queue correctly? Or if I need that many elements would it make more sense to have an array of clusters instead of the queue. I thought the queue was more efficient and will be better because several processes may be using the same queue or array of data at the same time.
Queues in the traditional sense are intended to apss data from one place to another. recentyl they have been harnessed to allow storage of data since that capacity comes along with their ability to move data.
An engineer I once worked with stated that "queues are almost always nearly full or nearly empty."
In my application I try to keep queues as close to empty as my CPU will permit.
Before i move I I would like to know, "Does your model require more than 2G of data?"
If so you can get up to 3G using a switch for Windows.
If not then I am not sure where we are going with this exploration.
After some more thought...
You may want to take a look at Action Engines as I describe in this thread. They provide storage of data while sharing same between multiple threads.
Just trying to help,
Ben