10-09-2012 06:38 AM
@Norbert_B wrote:
Roger,
your attachments somehow irritate me.
Missing_BD.zip seems to have the very same content as the original Execution.zip. All class VIs have their BD removed and do contain code (even if option seperate source code is checked, but the option itself is greyed out).
Execution_Fixed.zip does contain all BDs for all VIs, but the issue with the broken error is not reproducable on my machine. I checked some of the subvis, but it seems all have the option to seperate the source code set.
EDIT: Ok, following you initial description i can reproduce the issue.
EDIT 2: I can reproduce the issue only if i opened one of the Load Core.vis before purging the cache. Please confirm.
Norbert
For me, I got to run the "Performance.vi", stop it, leave the VI it open, clear the cache, close the VI and reopen it <- have you tried that?
Maybe it manifests itself differently on various computers/setups?
Br,
/Roger
10-09-2012 07:21 AM - edited 10-09-2012 07:24 AM
Roger,
just for clarification:
I am using your _Fixed example all the time (the other two wont work). The main VI is called "Benchmark.vi". Loading of VIs is done by opening the Benchmark.vi from the project, other VIs are loaded via the callers BD (double click the instance) if not stated otherwise.
Initialize:
With nothing open in LV, clear cache.
So it seems that the error is altogether connected to Load Core.vi and its dependencies.
Therefore, i made an additional test:
So it definetly seems that there is a mess up in the compile hierarchy within Load Core.vi. So the question is: What would be a reason for this?
Norbert
EDIT: Closing LV with an "executable" version of Benchmark.vi loaded as last item, there comes a dialog telling about internal warnings and if i want to send them to NI. So it is no error send dialog. Still, it is remarkable that LV behaves so....
10-09-2012 07:40 AM - edited 10-09-2012 07:41 AM
@Norbert_B wrote:
Roger,
just for clarification:
I am using your _Fixed example all the time (the other two wont work). The main VI is called "Benchmark.vi". Loading of VIs is done by opening the Benchmark.vi from the project, other VIs are loaded via the callers BD (double click the instance) if not stated otherwise.
Initialize:
With nothing open in LV, clear cache.
- Open Project
- Load Benchmark.vi.
- Clear cache (nothing done) tells me it would clear 484kB of cached files. Do so.
- Close Benchmark.vi
- Reopen Benchmark.vi. Run arrow is "normal".
- Clear cache (nothing done) tells me it would clear 55kB of cached files. Do so.
- Close Benchmark.vi.
- Reopen Benchmark.vi. Run arrow is "normal". Rinse and repeat steps 6-8 as often as you like, i found no change.
- Reopen Benchmark.vi. Force compile it (Ctrl+Mouse click on run arrow).
- Clear cache tells me it would clear 281kB of cached files. Do so. Possibly, the size could be 55kB as well. Might depend if you canceled a clearing before...
- Close Benchmark. vi
- Reopen Benchmark.vi. Run arrow is "normal". Repeat stept in range 6-12, there shouldn't be any change.
- With Benchmark.vi open, change to the BD. Open any of the Create functions. I saw that those have their BD removed.
- Clear cache. Does not matter if the Create vi you opened at step 13 is still open or not. Cache size should still be 55kB or 281kB.
- Close Benchmark.vi (and Create if still open).
- Reopen Benchmark.vi. Run arrow is "normal".
- Open BD and open any of Load Core.vi.
- Clear cache. Does not matter if the Create vi you opened at step 17 is still open or not. Cache size should still be 55kB or 281kB.
- Close Benchmark.vi.
- Reopen Benchmark.vi. Run arrow is broken and clicking on it reveals the "out of memory" error.
So it seems that the error is altogether connected to Load Core.vi and its dependencies.
Therefore, i made an additional test:
- Initialize (clear cache from LV start screen).
- Repeat steps 1-5 from the first test
- Open the BD of a Load Core.vi. Open the three subvis (lock, unlock and UnRefGetEndExecution) and force compile them.
- Close the subvis and force compile Load Core.vi
- Force compile Benchmark.vi
- Close all VIs, leaving the project open.
- Reopen Benchmark.vi. Run arrow is "normal"!
So it definetly seems that there is a mess up in the compile hierarchy within Load Core.vi. So the question is: What would be a reason for this?
Norbert
EDIT: Closing LV with an "executable" version of Benchmark.vi loaded as last item, there comes a dialog telling about internal warnings and if i want to send them to NI. So it is no error send dialog. Still, it is remarkable that LV behaves so....
Damn, that was a detailed "steps to reproduce".
There lives a menacing tester within you Norbert!
What I can speculate of could cause some problems is the inlined lock.vi/unlock.vi inside the inlined Load Core.vi. Also the inline functionality is fairly recent, perhaps still not having the same mileage as in the other LV primitives?
Seem to be a possible cause after testing a little. I disabled the inline from Load Core.vi.
And now I don't get any "internal warning" dialogs after I end LV and fiddling with the clear compiled cache back and forth.
Give it a shot on your end?
Br,
/Roger
EDIT: I am on my 64bit workstation now.
10-09-2012 08:17 AM
@Norbert_B wrote:
[..]
So it seems that the error is altogether connected to Load Core.vi and its dependencies.
Therefore, i made an additional test:
- Initialize (clear cache from LV start screen).
- Repeat steps 1-5 from the first test
- Open the BD of a Load Core.vi. Open the three subvis (lock, unlock and UnRefGetEndExecution) and force compile them.
- Close the subvis and force compile Load Core.vi
- Force compile Benchmark.vi
- Clear cache.
- Close all VIs, leaving the project open.
- Reopen Benchmark.vi. Run arrow is "normal"!
[..]
Forgot step 6. Just for completeness..
Will try to find additional information if i have more time (currently doing something else... )
Norbert
10-12-2012 02:25 AM
Roger,
i passed the information on to R&D and CAR #374133 was filed. Currently, we have no further information about the source other than the experience that setting "Seperate Source Code" together with "Inline" is causing the issue (your finding, well done 😉 ).
As a workaround, i suggest to NOT use "Inline" even if it does affect performance a little bit in a negative way (depending on the content of the subvi).
hope this helps,
Norbert
10-12-2012 02:27 AM
@Norbert_B wrote:
Roger,
i passed the information on to R&D and CAR #374133 was filed. Currently, we have no further information about the source other than the experience that setting "Seperate Source Code" together with "Inline" is causing the issue (your finding, well done 😉 ).
As a workaround, i suggest to NOT use "Inline" even if it does affect performance a little bit in a negative way (depending on the content of the subvi).
hope this helps,
Norbert
Thanks Norbert! Awesome teamwork here!
Br,
/Roger