Uploaded image for project: 'ROOT'
  1. ROOT
  2. ROOT-8871 Improve performance of ROOT I/O
  3. ROOT-8872

Improve performance of TTree::Fill();

    XMLWordPrintable

Details

    • Sub-task
    • Resolution: Fixed
    • High
    • 6.12/00
    • None
    • None
    • None

    Description

      TTree::Fill() is a hotspot in the random number generation benchmark due to the condition checking if an auto-save or auto-flush action must be performed. Both checks use a "fEntries % N == 0" operation, which is as expensive as a division. This expensive operation can be replaced by a check for equality if we use a counter that is reset every time an auto-flush or auto-save is performed.

      Attachments

        1. autoflush.png
          autoflush.png
          362 kB
        2. hotspots.png
          hotspots.png
          83 kB
        3. ttree-fill-ge-diff.png
          ttree-fill-ge-diff.png
          35 kB
        4. ttree-fill-ge-timediff.png
          ttree-fill-ge-timediff.png
          159 kB

        Activity

          People

            amadio Guilherme Amadio
            amadio Guilherme Amadio
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:
              Actual Start: