Skip to content
  • Laurențiu Nicola's avatar
    ENH: Add otbStopwatch replacing itk::TimeProbe · 7afea3ff
    Laurențiu Nicola authored
    The itk::TimeProbe constructor ends up calling
    itkResourceProbe::GetSystemInformation, which reads things like the
    hostname, the number of CPUs and so on. On Linux it parses /proc/cpuinfo
    for that information.
    
    OTB doesn't really need all those fields for a simple timer that's only
    used in a couple of places. This commit adds a replacement for that.
    
    As for the benchmarks, 100 000 instantiations of itk::TimeProbe take
    about 9.5 s on my computer. I suspect it's somewhat slower on a server
    with more CPUs. So this doesn't bring a huge performance improvement,
    but it might help in cases where a large number of high-resolution
    images are being read. The time for the same number of otb::Stopwatch
    instantiations is 4 ms.
    
    The context for this change is a project where we process time series of
    medium to high resolution images over large areas. The TimeProbe in
    otbGDALImageIO was sometimes showing in the profiles.
    
    A relevant discussion can be found at
    https://groups.google.com/d/msg/otb-developers/IvsFzSgRojo/0sMeEIZgCQAJ .
    7afea3ff