@Kornel: I did quite a few changes in the CMakeLists.txt, introducing one new feature and tweaking the compiler options. Can you have a look and see if I made any obvious mistakes? You know my CMake isn't so good...

@all: The new feature is my use of the clang 'leak sanitizer':

https://clang.llvm.org/docs/LeakSanitizer.html

You may have noticed that I have my own code to track memory allocations (the memlog stuff), but that only goes so far and only tracks allocations in lux' own code - and only if it's explicitly coded. The 'leak sanitizer' works at a lower level (a bit like valgrind) and also checks activity in the linked-in libraries. It's also allegedly quite fast. I may eventually throw out my own allocation tracing code in it's favor. Use of the feature is activated by passing -DLEAK_SANIZER=ON to cmake, and my own allocation tracing by -DMEMLOG=ON.

Neither of the two is necessary, but I noticed a *strange effect*, maybe some of you have seen such behavior, please get in touch:

When I do specific stuff in lux repeatedly (like, show a slide show of exposure-fused brackets) - memory use slowly 'creeps up', but it does not seem to rise at a steady rate like a 'real' memory leak, instead the increase slowly lessens and seems to pretty much stop after some time. When I noticed this behavior, I feared for the worst and suspected I had a hard-to-detect leak somewhere, but my own tracking of new/delete showed no unmatched pairs. This doesn't necessarily mean all is well (there may be pointer type issues), so I threw in the leak sanitizer. And to my surprise *the problem disappeared*. Like altogether. There was no more creeping memory use buildup. The leak sanitizer finds no fault, either. Now it might be that the implementation of malloc/free which underlies C++ new/delete may be at fault, but I'm not really competent to figure out what's going on here, help would be welcome!

Be that as it may, the sanitizer is lightweight so I may just have it on/in all the time anyway and benefit twofold: the 'memory creep-up' is gone, and I'm instantly notified if there are leaks detected (it even found a 40-byte leak in libexiv2...)

Apart from that, the recent pushes to master after 1.0.8 should produce a noticeable increase in stitching/fusing speed (and hopefully no creepy errors) - on my system, I was able to stitch a small-ish regular panorama (6X16MP JPG image stripe to 60MP spherical) in 29 seconds, vs. 50 seconds using hugin_stitch_project. This is very encouraging!

Kay

--
A list of frequently asked questions is available at: 
http://wiki.panotools.org/Hugin_FAQ
--- You received this message because you are subscribed to the Google Groups "hugin and other free panoramic software" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/hugin-ptx/b0689c87-a230-453e-e8c8-3818caaadd1b%40yahoo.com.

Reply via email to