I have spent some considerable time debugging a new application, after we decided to migrate it to new architecture. When most ordinary coding mistakes where weeded out, the application started running smoothly for short periods before suddenly freezing up to the point where connection to the RT target was lost.
I finally figured out that a subVI that returns system data (memory use, cpu load, etc) took so long to execute that the queue feeding that consumer loop filled up with tasks, eventually causing the memory to fill up. I did some testing of the subVI separately and noticed that "RT Get CPU Loads.vi" takes forever to execute the first time it's called after a target restart, and then executes quickly on subsequent calls.
Is this known behaviour? Any other ways to solve this, except calling "RT Get CPU Loads.vi" during initialization?
Best regards,
Jarle Ekanger, MSc, PhD, CLD
Flow Design Bureau AS
- "The resistance of wires in LabVIEW is not dependent on their length."