Would expect this to return no leaks instead we are getting "Filtering child leaks" dialog in bottom right and this takes a very very long time - never seen it complete yet.
App is quite large, tried in 32bit and get the same.
Theoretically there should be very limited new leaks when I do this:
After testing on a small 64bit app it seems to work ok. I get a few "leaks" from the creation of the report only. But that takes a second or two so not "instant" so im wondering if its still sorting through alot of objects or items when cleared still?
With large app - clear then report - CPU core maxes and its busy doing something - for a long time.
I have not yet seen it complete.
With leak reporting on the "big" app is only running 550MB (normaly 230MB or so without madexcept leak checking) in memory so not huge by 64bit standards. When i do a ClearLeaks(False,false) memory usage remains unchanged? would have expected it to shrink somewhat?
Any ideas from the above?
Attached a test, this is a "tiny" app but takes 11 sec to process child leaks the first time (on an i7 8700k), then near instant the second time in same instance.
That not running in IDE either, that does not seem to change the time taken.
I think this will highlight the issue for you.
Same for 32bit and 64bit so i don't think that is the problem being 64bit only.
Run app then tap ClearAndReportLeaks button. Then tap a second time to see it much faster.
Please let me know what you see.
this is in delphi 10.2.3
- (61.79 KiB) Downloaded 198 times
I've double checked the code and calling "ClearLeaks()" only marks the leaks as being no leak. But they're still checked for parent/child leaks. I'm not 100% sure why I've done this, to be honest, but I suppose that I must have had a good reason and I'm scared to break something. So instead now I've added this new API to madExcept.pas:
Code: Select all
// Do you want child leaks to be filtered (can be very slow)? procedure SetChildLeakFiltering (doFiltering: boolean);