[IGSTK-Users] Numerous Transform Callback Performance

Jake McIvor jdmcivor at interchange.ubc.ca
Fri May 14 20:04:58 EDT 2010


Hey Patrick,

I am using a recent CVS checkout of IGSTK with Qt and a Hybrid Polaris
tracker.  Removing the unnecessary ObserveTransformEventsFrom() from the
callback has essentially eliminated the slowdown in rate over time.  The
data logging rate is slower than the sandbox example, but that is likely
because I am displaying/updating several views on the GUI.

I installed Visual Leak Detector instead of Valgrind because I am developing
in Windows.  The leak detector fond quite a few leaks in my program, but I
don't have much experience with debugging memory issues so it is taking some
time to wade through them.

I am using IGSTK with SceneGraphVisualization on. A large number of the
leaks trace back to SceneGraph and SceneGraphNode - it appears that the
destructor is never called.

I was able to reproduce this in the HelloWorld example. 1 SceneGraph and 6
SceneGraphNodes are created, but neither destructor is called.  Is this by
design or is it a bug?

~Jake

On Thu, May 13, 2010 at 1:51 PM, Patrick Cheng <cheng at isis.georgetown.edu>wrote:

> Hi Jake,
>
> Can you tell us a little more about your experiment setup? IGSTK versions,
> system, tracker, and example code.  When you run your test, did you observe
> memory leak? You can check this by using system monitor to see the memory
> usage. Under linux you can use "top" command.
>
> There is also an example application in IGSTKSandbox does exactly the same
> thing. I am wondering if you could run that application and tell us about
> its performance. (IGSTKSandbox/Exampls/TrackerDataLogger)
>
> Patrick
>
>
> On 5/12/2010 12:04 PM, Jake McIvor wrote:
>
>> I have an application that logs transform data to a file.  A callback
>> function is attached to an observer watching for
>> TrackerToolTransformUpdateEvent.  Within the callback function I use a
>> transform observer to check for and get the latest transform, and then
>> log it to a file.
>>
>> Over time, the rate at which these transforms are recorded drops
>> significantly.  I came across a section of Christopher Heath's thesis,
>> Disablement of a Surgical Drill Via CT Guidance to Protect Vital Anatomy
>> that describes a similar issue:
>>
>> "A method was added to Landmark3DRegister to allow for pass by reference
>> retrieval of transforms instead of using callbacks. This was implemented
>> to prevent an issue that occurs with the callback method utilized by
>> IGSTK when finding the transform many times."
>>
>> Does anyone have any insight on what is happening or how to improve
>> performance?
>>
>> Cheers,
>>
>> Jake
>>
>> --
>> Jake McIvor
>> MASc Candidate, Biomedical Engineering
>> University of British Columbia
>>
>>
>>
>>
>> _______________________________________________
>> Powered by www.kitware.com
>>
>> Visit other Kitware open-source projects at
>> http://www.kitware.com/opensource/opensource.html
>>
>> Follow this link to subscribe/unsubscribe:
>> http://public.kitware.com/cgi-bin/mailman/listinfo/igstk-users
>>
> _______________________________________________
> Powered by www.kitware.com
>
> Visit other Kitware open-source projects at
> http://www.kitware.com/opensource/opensource.html
>
> Follow this link to subscribe/unsubscribe:
> http://public.kitware.com/cgi-bin/mailman/listinfo/igstk-users
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/igstk-users/attachments/20100514/db8898eb/attachment-0001.html>


More information about the IGSTK-Users mailing list