LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

LabVIEW Vision aqcuisition performance lost when tabbing or updating vision controls.

Greetings

 

I have an application that grab 700x500 images from a basler gigE camera at 20 FPS and enqueuee them for saving into an SSD using a ring grab in a producer-consumer loop configuration with and array of 10k diferent image buffers. It worked well for a while but after looking closely to the time between frames both on the producer loop and the images on the SSD I noticed that there are masive drops of FPS every time I changes tabs and enable visualization, even in developer mode if I scroll over the block panel while running there is a performance hit.

 

I'm aware that this is a known fact and that using diferent front panel themed controls yeld different performance results, but as I said this wasnt really a problen except now I'm working with events that can happen at random and very fast so I need the best performance out of my systems. I've already used a case to disable front panel image update and clean the code as much as posible but this is still an issue. I've also tryied many of the IMAQ acquisition examples from LV but the results are prety much the same every time.

 

Is there anything I can do to improve performance so the aqcuisition is stable? I'm willing to let consumer take more time as long as I don't lose any information at the producer.

 

I'm using LabVIEW 2022 Q3 with NI-IMAQ and NI-IMAQdx 2022Q3.

My target system is a 10th Generetion i7 with 32Gb of RAM, 2Tb SSD andd 4Gb GTX 1650.

 

Thanks to everyone for reading. 

0 Kudos
Message 1 of 4
(620 Views)

Hi,

 

Is your event loop for handling user actions separated from your image producer-consumer loops ? The event structure can be blocking depending on the event being processed, so if you are using the same loop for handling user actions and producing images, your image rate will inevitably be affected.

 

Could you share some code ? (VIs or full project, max version LV2021)

 

Regards,

Raphaël.

0 Kudos
Message 2 of 4
(593 Views)

Hi

No, the producer only grabs images from the camera and put them into an array of image buffers, then the producer takes the image out, at a different pace, and save that as a png.

 

The producer sometimes gets stuck because of windows or the capacity of the SSD (brand) but the producer usually works fine on its own. 

0 Kudos
Message 3 of 4
(569 Views)

Have you considered using DVRs?

An array of DVR references should be more efficient than passing around the data.

 

Have you checked the logical CPU performance (any cores maxed out)?

(Task Manager -> Performance -> CPU -> (right-click) Change Graphs to -> Logical Processors)

 

----------------------------------------------------------------------------------------------------------------
Founding (and only) member of AUITA - the Anti UI Thread Association.
----------------------------------------------------------------------------------------------------------------
0 Kudos
Message 4 of 4
(517 Views)