User | Kudos |
---|---|
6 | |
5 | |
3 | |
3 | |
2 |
Too many times, a generic "Out of Memory" error pops up without explanation, source, or traceability. Sometimes it occurs intermittently when executing the exact same process. Tracking these mystery errors down takes more time than necessary and takes away from the efficiency and gains intended by the design of the automatic memory manager within LabVIEW. After some research and help from an application engineer, it is apparent that the memory manager is not well suited for modern PC's and OS's when needing to process larger amounts of data.
LabVIEW should be able to use all the application memory offered by the OS, not just the contiguous parcels it is lucky enough to find. Not only should it be able to use fragmented virtual memory but it should also be able to exploit more than just 75% of a 1GB application segment, particularly when 16 GB is installed on the motherboard.
For example, simple arrays of I16's are sometimes denied if they are only tens of MB in length and denied all the time if they are in the hundreds of MB. That doesn't even come close to the available memory capacity in the PC. Granted, those arrays are large compared to VI's written for simple GPIB devices twenty years ago but the need for larger arrays is now more prevalent with high-speed data acquisition and high-resolution imaging.
Why can't the memory manager grow with the latest PC memory capacities, motherboard architectures, modern OS's, and modern instruments that can acquire and transmit data with those array sizes? Isn't it time to challenge the need for contiguous memory? Can't more intelligence be added to the memory management strategy by not needing to copy large arrays redundantly that cause "out of memory" errors? Can't a memory manager be able to work within the fragmented virtual memory space of a Windows OS without having to reboot? Shouldn't it adapt to the OS environment instead of needing to prevent every other application from running in order to statistically gain more contiguous memory? Can't better automatic tracing and error messaging be delivered to the programmer prevent to much wasted time?
I have been impressed by the quality of service and detail of the online help to tiptoe around these limitations. However, it seems time to graduate from building contraptions to avoid the problem and instead apply that effort towards solving the problem. Are there plans to issue a new automatic memory manager to optimize the potential of modern PC's and OS's?
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.