[Insight-developers] question for itk pipeline expert

Luis Ibanez luis.ibanez at kitware.com
Thu Dec 8 07:26:39 EST 2005


Hi Gaetan,


     Gaetan Lehmann wrote:

     > how can I evaluate the performance of the
     > filters in that situation ?



    Enjoy the Power of Open Source !



    Go to the source code of the filter that you
    want to profile and add a TimeProbe as a member
    variable.

    If the filter is not threaded, simply Start the
    TimeProbe at the beginning of the GenerateData()
    method, and Stop it at the end of the same method.

    If the filer is threaded, Start() the TimeProbe in
    the "BeforeThreadedGenerateData()" method and
    Stop() the TimeProbe in the "AfterThreadedGenerateData()"
    method.



    If you want to force the filters to re-execute,
    multiple times in order to have better statistics,
    then you can invoke the "Modified()" method on them
    before calling "Update()".


    Add a Get method to the filter in order to gain
    access to the probe, so when you are done running
    the filters you can invoke from outside the filter
    the report of the Time Probe.  At that point, pay
    particular attention at the report on "Number of
    Starts" and "Number of Stops", since that will
    tell you how many times the "Generate Data" method
    was executed.


       Regards



        Luis


----------------------
Gaetan Lehmann wrote:
> 
> Hi Bill,
> 
> No, there is no ReleaseDataFlagOn() in the filters used.
> I have displayed the progress of all the filters to verify that they 
> are  not reexecuted if they shouldn't, and everything looks nice (but 
> the  timing are still not what they should).
> It's a major problem for me: how can I evaluate the performance of the  
> filters in that situation ?
> 
> Gaetan
> 
> On Wed, 07 Dec 2005 21:12:55 +0100, Bill Lorensen 
> <wlorens1 at nycap.rr.com>  wrote:
> 
>> Are you using ReleaseDataFlagOn in any of your filters. Perhaps  
>> something is re-executing.
>>
>> Bill
>>
>> At 07:42 AM 12/7/2005, Gaetan Lehmann wrote:
>>
>>> Hi,
>>>
>>> I'm trying to measure the execution time of a new filter.
>>> It's done with
>>> http://voxel.jouy.inra.fr/darcs/contrib-itk/regionalExtrema/perf3D.cxx
>>> Here are the results I get:
>>>
>>> [glehmann at marvin build]$ ./perf3D ../ESCells.img
>>> #F      concave vrmin   rmin
>>> 0       17.874  2.592   1.74
>>> 1       21.022  3.613   2.799
>>>
>>> There is a problem: rmin is a sequence of filters which include 
>>> vrmin,  and
>>> so rmin should take more time than vrmin.
>>> Now, if I comment rmin measure and update, I get
>>>
>>> [glehmann at marvin build]$ ./perf3D ../ESCells.img
>>> #F      concave vrmin   rmin
>>> 0       17.578  0       2.614
>>> 1       21.276  0       3.722
>>>
>>> Again, there is something wrong: I should get the same value than before
>>> for rmin if vrmin is not updated.
>>>
>>> I think there is something hidden in the execution of the pipeline, 
>>> but  I
>>> can't get what.
>>> Can someone look at the code above and tell me what I'm doing wrong ?
>>>
>>> I'm using ITK 2.4.1, cmake 2.2.2 and gcc 4.0.1
>>>
>>> Thanks,
>>>
>>> Gaetan
>>>
>>> -- 
>>> Gaëtan Lehmann
>>> Biologie du Développement et de la Reproduction
>>> INRA de Jouy-en-Josas (France)
>>> tel: +33 1 34 65 29 66    fax: 01 34 65 29 09
>>> http://voxel.jouy.inra.fr
>>> _______________________________________________
>>> Insight-developers mailing list
>>> Insight-developers at itk.org
>>> http://www.itk.org/mailman/listinfo/insight-developers
>>
>>
> 
> 
> 



More information about the Insight-developers mailing list