LabVIEW Idea Exchange

cancel
Showing results for 
Search instead for 
Did you mean: 
GoofyWires

Add efficiency analysis for each function in the help

Status: Declined

Any idea that has received less than 3 kudos within 3 years after posting will be automatically declined.

How could a user know if a block he is using is slow or fast?

For example, Variant attribute is organiazed in a red balck tree, thus, a search is O(log(n)) while a regular array search is much slower O(n).

At the moment there are two options:

 

1. Benchmark each code section.

2. Read about tricks on the forums.

 

Instead, if NI added efficiency alanisys to each function with a simple automatic tool then we could easily find what we are searching for.

 

7 Comments
Norbert_B
Proven Zealot

I'm confident that you will never get any numbers.

First: All benchmarks are specific to an individual system.

 

Example:

NI would state that subVI xyz is needing 5ms in average. What will you do if you check on several (different) systems and encounter something >10ms? What if your systems will run it in less than 2ms?

 

Second: If you'd sum up the times and expect the whole application to iterate within x seconds. What if this is not met? Do you think you'd have any kind of "guarantee"?

 

I do concur on the other hand that NI could improve documentation as such that it states which kind of algorithm is implemented. This could reveal if timing is more O(log(n)) rather than O(n), but still, it might depend on certain conditions you have to meet....so it would be incorrect for certain states as well.

 

just my 2 cents,

Norbert

Norbert
----------------------------------------------------------------------------------------------------
CEO: What exactly is stopping us from doing this?
Expert: Geometry
Marketing Manager: Just ignore it.
GoofyWires
Member

Norbert_B, thanks for the reply.

Read the idea again and you'll see that I didn't mean NI to do benchmarking.

Benchmarking and forums are tools that we, the users, have while we need the theoretical analysis of the closed code NI developed.

I understand why NI doesn't open up the implementation but that comes with a price, the community needs at least to know the efficiency analysis.

The part that you concur of is exactly my idea, thus, I expect a Kudus. My first 🙂

Let NI give the most efficient analysis that assumes that the best general conditions were met (while detailing those conditions).

Obviously it won't cover up bad coding style but that same coding style will affect any block you choose to implement and it better be the most efficient one.

GoofyWires.

labview4steve
Member

I like this idea..... There are already vis that do the exact same function but with different versions and National instruments already does tell us what one to use....

 

Eg On the numeric tab the standard triangle shaped vis for "addition",  "subtraction",  "multiplication", "division" etc are much slower than the rectangle shaped "compound Arithmatic" function.... and it doesn't matter what system or configuration you use them in....

they are just slower....

 

So if labVIEW could have a help that told us on a scale -- it doesn't have to be exact milisecond times... but if it could tell us ones to use in preference... eg if we select the standard "addition" then in the context help a hyperlink should appear linking us to compatible vis that do something similar that would be faster ...

 

 

GoofyWires
Member

Hey labview4steve,

I'm so glad you like this idea.

This is my 3rd Kudo and it sure feels nice 🙂

Though, it is hard to believe NI will actually implement it with all its complexity.

I posted the idea basically since I had to protest the lack of good documentation.

I truly believe that once such documentation is available there will be lots of idea exchange here regarding a need to improve highly used blocks which are poorly implemented.

GoofyWires.

 

Norbert_B
Proven Zealot

@GoofyWires:

 

Adding information to the help of existing functions require NI to add it. So supplying benchmark results within the help is nothing the community could ever deliver.

And as stated: Performance is always depending on a specific system, so "a general benchmark" valid for all systems is not possible.

 

@labview4steve:

 

Where do you have the information regarding performance of primitives vs compound arithmetics from?

Running LV 2011 on Win 7 32bit on a dual core laptop Dell Latitude E6500 does not show ANY difference between primitive and compound.

So this is maybe one very good example why performance discussions are not prudent to bring into the LV help.....

 

Norbert
----------------------------------------------------------------------------------------------------
CEO: What exactly is stopping us from doing this?
Expert: Geometry
Marketing Manager: Just ignore it.
GoofyWires
Member

Norbert_B,

 

I already replied to your question and asked you to read the idea more carefully.

At first I thought that it was my fault that you were confused what I ask NI to do here but the rest seem to get it:

 

No, I don't want to do benchmarking or NI to do them! I want NI to give a honest efficiency analysis of their basic closed algorithm regardless of the platform it runs over. In software engineering you analyze algorithms by checking how many times you must run over an array of n elements for example. I need to know which data structure they used for each block.

http://en.wikipedia.org/wiki/Algorithmic_efficiency

using Big-O notation

http://en.wikipedia.org/wiki/Big_O_notation

 

 

Capisce?

Darren
Proven Zealot
Status changed to: Declined

Any idea that has received less than 3 kudos within 3 years after posting will be automatically declined.