Uploaded image for project: 'ROOT'
  1. ROOT
  2. ROOT-9769

Increased memory when creating an empty TFile in a loop

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed (View Workflow)
    • Priority: Blocker
    • Resolution: Fixed
    • Affects Version/s: 6.14/04
    • Fix Version/s: 6.16/00, 6.14/06
    • Component/s: I/O
    • Labels:
      None
    • Environment:

      The behaviour is the same on MacOS and Ubuntu.

    • Development:

      Description

      If you load and run the attached macro

      root [0] .L tmem.C
      root [1] tmem()

      You will observe the following messages:

      Warning in <TTree::Bronch>: Using split mode on a class: TObject with a custom Streamer
      Wrote dummy tree to dummy file
      ******************************************************************************
      *Tree :dummyTree : *
      *Entries : 100 : Total = 44435 bytes File Size = 3139 *

      • : : Tree compression factor = 17.23 *
        ******************************************************************************
        branch: dummyBranch 2454

      RSS: 0.13(0.13) GB VMEM: 0.08(0.08) GB CpuTime:0.00 RealTime:0.00
      Will measure memory at 100 file open/close operations w/o reading anything from it
      test 10000 (10%) RSS: 0.19(0.06) GB VMEM: 0.13(0.05) GB CpuTime:1.98 RealTime:4.54
      test 20000 (20%) RSS: 0.23(0.05) GB VMEM: 0.17(0.05) GB CpuTime:1.85 RealTime:1.98
      test 30000 (30%) RSS: 0.27(0.04) GB VMEM: 0.22(0.05) GB CpuTime:2.39 RealTime:2.65
      test 40000 (40%) RSS: 0.28(0.01) GB VMEM: 0.28(0.06) GB CpuTime:1.91 RealTime:2.03
      test 50000 (50%) RSS: 0.29(0.02) GB VMEM: 0.32(0.04) GB CpuTime:1.97 RealTime:2.20
      test 60000 (60%) RSS: 0.27(-0.02) GB VMEM: 0.37(0.05) GB CpuTime:1.87 RealTime:4.21
      test 70000 (70%) RSS: 0.32(0.05) GB VMEM: 0.43(0.06) GB CpuTime:1.86 RealTime:1.94
      test 80000 (80%) RSS: 0.37(0.05) GB VMEM: 0.47(0.05) GB CpuTime:1.82 RealTime:1.92
      test 90000 (90%) RSS: 0.42(0.05) GB VMEM: 0.52(0.05) GB CpuTime:1.81 RealTime:1.89
      RSS: 0.47(0.05) GB VMEM: 0.57(0.05) GB CpuTime:1.81 RealTime:1.88

      which point to linear increase both of the resident and virtual memory. Running with Instruments on MacOS I see the following main contributor:

       

      0 libsystem_malloc.dylib malloc_zone_malloc
      1 libsystem_malloc.dylib malloc
      2 libc++abi.dylib operator new(unsigned long)
      3 libRIO.so TFile::GetStreamerInfoListImpl(bool)
      4 libRIO.so TFile::ReadStreamerInfo()
      5 libRIO.so TFile::Init(bool)
      6 libRIO.so TFile::TFile(char const*, char const*, char const*, int)

       

        Attachments

          Activity

            People

            • Assignee:
              dpiparo Danilo Piparo
              Reporter:
              hristov Peter Hristov
            • Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:
                Actual Start:
                Actual End: