byte-physics / igortest

Igor Pro Universal Testing Framework
https://docs.byte-physics.de/igor-unit-testing-framework/
BSD 3-Clause "New" or "Revised" License
7 stars 2 forks source link

Performance Increase #476

Closed MichaelHuth closed 1 month ago

MichaelHuth commented 2 months ago

These changes increase the performance of the IUTF. For 1000x CHECK_EQUAL_WAVES for the success case the rough numbers are:

Before: 7.37 s After: 0.31 s

close #474 close #472

Garados007 commented 2 months ago

The numbers are astounding. 😱

The changes looks good and can be merged.

Garados007 commented 2 months ago

@MichaelHuth Can you link the respective issues, so they will be automatically closed?

MichaelHuth commented 2 months ago

@Garados007 I was also wondering about the DebugOutput function that is called for each result evaluation. This calls EnabledDebug that does a GetPackageFolder resolve followed by an NVAR resolve. Both is rather slow.

Do you think it would be ok for the debug output functionality to wrap it through a #define instead of a global variable ?

Garados007 commented 2 months ago

I checked the implementation in igortest. This functionality is never used and meant to be enabled by the user using EnableDebugOutput(). The gain is also quite limited, because this will only print some data to the history that is already available in the result waves (and the result waves contain more data). This might be an artifact of the time when it was implemented and I never made use of it.

I assume it is okay if you exchange the global variable with a #define. And I am also okay if you remove this functionality entirely, although I think we have to discuss this with Thomas first.

t-b commented 2 months ago

Decision from todays meeting: Throw out debug mode, also from documentation.

MichaelHuth commented 2 months ago

It seems it was nowhere documented. I could not find a mention in the rst files.

Garados007 commented 2 months ago

@t-b I cant enforce the merge because of failing CI. Can you merge this?