LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Big Performance Degradation in LabVIEW 2012

Solved!
Go to solution

Hi all,

 

I was expecting a performance increase upgrading to LV2012, per usual, unfortunately it seems it's been degraded by more than 50% for a simple benchmark I created for the purpose.

 

For the time being, I will stick with LV2011 due to this.

 

LV2011 running on a sbRIO9606 (steady around 3800 dereferencing/referencings per second):

LV2011.JPG

 

LV2012 on the same computer (at about 1300 dereferencing/referencings per second😞

LV2012.JPG

 

Any takes on the issue? 

 

Source attached.

 

Br,

 

/Roger

0 Kudos
Message 1 of 111
(11,197 Views)

Small correction:

 

I got the wrong graph for LV2011..

 

LV2011.JPG

 

And the correct source also attached..

 

Otherwise, the post above is correct.

 

Br,

 

/Roger

 

0 Kudos
Message 2 of 111
(11,171 Views)

Both of your LoadCores have 0 wait, causing starving loops. Might that be a reason?

 

/Y 

G# - Award winning reference based OOP for LV, for free! - Qestit VIPM GitHub

Qestit Systems
Certified-LabVIEW-Developer
0 Kudos
Message 3 of 111
(11,103 Views)

@Yamaeda wrote:

Both of your LoadCores have 0 wait, causing starving loops. Might that be a reason?

 

/Y 


Hi, Yameada,

 

I dont think it's a starvation issue that explains the large difference between LV2011 and 2012?

Furthermore, the two loops are almost evenly balanced in the number of iterations/s?

Can you perhaps elaborate your point further?

 

Br,

 

/Roger

 

 

0 Kudos
Message 4 of 111
(11,079 Views)

Not directly, but since you'll get a recompile due to the upgrade things might work differently afterwards, race conditions between locals being a prime example. Maybe those loops get higher priority in the new compiler?

Besides, you dont need to check for button presses 4 billion times a second. 🙂

Before we can say that 2012 is the culprit we must remove obvious problems in the program, right?

 

/Y 

G# - Award winning reference based OOP for LV, for free! - Qestit VIPM GitHub

Qestit Systems
Certified-LabVIEW-Developer
0 Kudos
Message 5 of 111
(10,981 Views)

"Check for button presses 4 billion times a second".

 

So what? It's a benchmark program. It's not intended for any practical use besides showing off the performance degradation that I experience in the newer version of labview.

 

"race conditions between locals being a prime example"

 

Did you cut'n paste that nonsense from the internetz?

 

"Maybe those loops get higher priority in the new compiler"

 

What does priority have to do with execution performance?

You are clearly not understanding the issue here.

 

Br,

 

/Roger

 

0 Kudos
Message 6 of 111
(10,974 Views)

@User002 wrote:

"Check for button presses 4 billion times a second".

 

So what? It's a benchmark program. It's not intended for any practical use besides showing off the performance degradation that I experience in the newer version of labview.

 

"race conditions between locals being a prime example"

 

Did you cut'n paste that nonsense from the internetz?

 

"Maybe those loops get higher priority in the new compiler"

 

What does priority have to do with execution performance?

You are clearly not understanding the issue here.

 

Br,

 

/Roger

 


 

Could you please post images of the benchmarking code?

 

The machine I use for the forums does not have a modern version of LV so I can only look at pictures.

 

There is a chance I may be able to explain your observations.

 

No promises!

 

Curious,

 

Ben

 

Retired Senior Automation Systems Architect with Data Science Automation LabVIEW Champion Knight of NI and Prepper LinkedIn Profile YouTube Channel
Message 7 of 111
(10,957 Views)

@Ben wrote:

@User002 wrote:

"Check for button presses 4 billion times a second".

 

So what? It's a benchmark program. It's not intended for any practical use besides showing off the performance degradation that I experience in the newer version of labview.

 

"race conditions between locals being a prime example"

 

Did you cut'n paste that nonsense from the internetz?

 

"Maybe those loops get higher priority in the new compiler"

 

What does priority have to do with execution performance?

You are clearly not understanding the issue here.

 

Br,

 

/Roger

 


 

Could you please post images of the benchmarking code?

 

The machine I use for the forums does not have a modern version of LV so I can only look at pictures.

 

There is a chance I may be able to explain your observations.

 

No promises!

 

Curious,

 

Ben

 


I wonder you don't have LV2011.( Oh you have personnal copy back home? 🙂 )

-----

The best solution is the one you find it by yourself
Message 8 of 111
(10,949 Views)

@P Anand wrote:
...I wonder you don't have LV2011.( Oh you have personnal copy back home? 🙂 )

This machine has LV 6i and LV 7.1.

 

I have other machines that are not used on any public network that cover all of the other versions and yes I have a personal copy of LV 2011 on my laptop at home. To look at any code above LV 7.1 I have to down load it to a server, boot a machine with that version...

 

Take care,

 

Ben

 

Retired Senior Automation Systems Architect with Data Science Automation LabVIEW Champion Knight of NI and Prepper LinkedIn Profile YouTube Channel
0 Kudos
Message 9 of 111
(10,945 Views)

Ok Ben, thanks! Appreciated! Smiley Very Happy

 

Here's a large picture with all the 'important' stuff.

 

Screenshot.JPG

 

Hope this is enough....

 

Its actually very simple as I got a single element queue and an overridden method for populating the class cluster with whatever I got in the queue.

The benchmark part is fairly straight forward.

 

Br,

 

/Roger

 

Message 10 of 111
(10,933 Views)