LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Round Color Box (Silver): Slows VI Server Access

Continued from here:

 

Christina (et al),

 

I've attached two examples demonstrating the obervation.  I first ran into this because I use a simple flags framework in some of my applications.  If the flag name input is unwired, I auto-name the flag based on the calling VI name.  So, I get a reference to the calling VI and determine a flag name respectively as you can see in the attachment.

 

The "Wait for Flag" primitive can be called in a loop as quickly as you like (limited by how long it takes to access the calling VI reference of course).  So, I had an application where the consumer loop had to run in the 100+ Hz range and because the Round Color Box (Silver) was on the panel, I couldn't get this kind of performance.  Switching to the Round Color Box (Modern) solved the issue (but doesn't look nearly as nice).

 

The "test color boxes_Rapidly Access VI Refnum" example below is a simplified version illustrating the problem.  The "test color boxes_Wait for Flag" example better represents what I'm actually doing.  Just unzip and run the "test color boxes_Rapidly Access VI Refnum" VI and follow the instructions on the panel.

 

Then, unzip and run the "test color boxes_Wait for Flag" VI for an actual use case.

 

Thanks for taking a look.  Do you see what I'm seeing?

 

 


Certified LabVIEW Architect
TestScript: Free Python/LabVIEW Connector

One global to rule them all,
One double-click to find them,
One interface to bring them all
and in the panel bind them.
Message 1 of 6
(3,051 Views)

Yes, we're now able to reproduce the performance problem. We'll investigate it. Thank you!


Christina Rogers
Principal Product Owner, LabVIEW R&D
0 Kudos
Message 2 of 6
(3,029 Views)

The problem here is that the "Silver" style frame draws relatively slowly. In most cases, this isn't noticeable because LabVIEW doesn't need to redraw the frame when the value of a control or indicator changes. But, when the control is an element of an array, LabVIEW does redraw the entire control for each element value change.

 

So, for the time being, I'm afraid it's not advisable to use Silver controls (other than the "frameless" ones) as array elements.

 

You can see that it's the frames that are causing the slowdown by coloring them transparent so that they're invisible. 

 

I'm embarrassed to mention this, but the coloring trick also shows that there's a workaround where you take a picture of the array of Silver color boxes, put it in the background, and then color the frames of the actual color boxes transparent. I'm not saying it to recommend it, just to say that it does get you something that looks the same without the performance problem.


Christina Rogers
Principal Product Owner, LabVIEW R&D
0 Kudos
Message 3 of 6
(2,884 Views)

Thanks for the workaround.  Has the Silver-frame-in-array-causes-lag issue been resolved in LabVIEW 2012?


Certified LabVIEW Architect
TestScript: Free Python/LabVIEW Connector

One global to rule them all,
One double-click to find them,
One interface to bring them all
and in the panel bind them.
Message 4 of 6
(2,814 Views)

I will look into this issue and let you know what I find.

0 Kudos
Message 5 of 6
(2,790 Views)

Based on what I found, I would suggest you continue to use the workaround. Have a good weekend!

Message 6 of 6
(2,764 Views)