Details
-
Bug
-
Status: Closed (View Workflow)
-
Blocker
-
Resolution: Fixed
-
6.14/04
-
None
-
The behaviour is the same on MacOS and Ubuntu.
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)