02-27-2023 05:45 PM
I'm chasing down a "Not enough memory to complete this operation" issue. I know I have some lossy queues with variable sized data elements. I ran this example to see where the memory would show up in "Profile Performance and Memory" but I noticed it does not show up while I was running it or after. In an ideal world, the memory would be attributed to the VI that called obtain queue or maybe under a line item for named queues. Is there a way to get a bit more resolution on what's using memory? It might be especially useful to know which function requested the memory and failed.
02-28-2023 03:52 AM - edited 02-28-2023 03:53 AM
You're not destroying your queues once created.
You only have approximately 1M queues of any given datatype available.
Once you exhaust this pool of references, you'll get an "out or memory" error.
The internal "cookie jar" for handling references behind the scenes is 20 bit IIRC.
Whether this is happening or you're just leaving data in your queues, I don't know,.
02-28-2023 07:03 AM
02-28-2023 11:14 AM
@Intaris wrote:
You're not destroying your queues once created.
You only have approximately 1M queues of any given datatype available.
Once you exhaust this pool of references, you'll get an "out or memory" error.
The internal "cookie jar" for handling references behind the scenes is 20 bit IIRC.
Whether this is happening or you're just leaving data in your queues, I don't know,.
Yes, I was intentionally trying to create a memory leak in this example so that I'd be able to see how to track down a similar leak. As it turns out, I didn't see the memory use with the "Profile Performance and Memory" tool. I was hoping someone had a tip for getting better resolution on what's eating up the memory. Something that would point more directly at the offender I created.