Hi Ed, You do not mention the size of your file nor the time it takes to process the file (Real and Cpu time). To help me to understand your problem, could you run the standard ROOT test program in $ROOTSYS/test? cd to this directory. Build Event (make or nmake) then run the following sequence Event 2000 0 0 1 Event 2000 0 0 20 Event 2000 0 0 20 Send me the output of the 3 steps. The first step should produce a 113 Mbytes file The following steps read the file. To give you an indication, here is the output on my small laptop (DELL P III 600 Mhz with 256 Mbytes RAM) running Linux. ==>step 1 (pcnotebrun) #[182] Event 2000 0 0 1 event:0, rtime=0.640000 s event:100, rtime=0.720000 s event:200, rtime=0.710000 s event:300, rtime=0.730000 s event:400, rtime=0.710000 s event:500, rtime=0.720000 s event:600, rtime=0.730000 s event:700, rtime=0.730000 s event:800, rtime=0.730000 s event:900, rtime=0.740000 s event:1000, rtime=0.720000 s event:1100, rtime=0.740000 s event:1200, rtime=0.740000 s event:1300, rtime=0.740000 s event:1400, rtime=0.740000 s event:1500, rtime=0.750000 s event:1600, rtime=0.740000 s event:1700, rtime=0.740000 s event:1800, rtime=0.720000 s event:1900, rtime=0.740000 s ****************************************************************************** *Tree :T : An example of a ROOT tree * *Entries : 2000 : Total = 113630291 bytes File Size = 113630291 * * : : Tree compression factor = 1.00 * ****************************************************************************** *Br 0 :event : * *Entries : 2000 : Total Size= 113594552 bytes File Size = 113594552 * *Baskets : 2000 : Basket Size= 64000 bytes Compression= 1.00 * *............................................................................* 2000 events and 113448552 bytes processed. RealTime=18.320000 seconds, CpuTime=14.470000 seconds compression level=0, split=0, arg4=1 You write 6.192607 Mbytes/Realtime seconds You write 7.840260 Mbytes/Cputime seconds ==step 2 (pcnotebrun) #[183] Event 2000 0 0 20 event:0, rtime=0.070000 s event:100, rtime=0.250000 s event:200, rtime=0.250000 s event:300, rtime=0.220000 s event:400, rtime=0.230000 s event:500, rtime=0.230000 s event:600, rtime=0.500000 s event:700, rtime=1.150000 s event:800, rtime=0.240000 s event:900, rtime=0.250000 s event:1000, rtime=0.440000 s event:1100, rtime=0.460000 s event:1200, rtime=0.310000 s event:1300, rtime=0.260000 s event:1400, rtime=0.450000 s event:1500, rtime=0.440000 s event:1600, rtime=0.240000 s event:1700, rtime=0.520000 s event:1800, rtime=0.460000 s event:1900, rtime=0.510000 s 2000 events and 113448552 bytes processed. RealTime=8.510000 seconds, CpuTime=4.390000 seconds You read 13.331205 Mbytes/Realtime seconds You read 25.842495 Mbytes/Cputime seconds ==>step 3 (pcnotebrun) #[185] Event 2000 0 0 20 event:0, rtime=0.070000 s event:100, rtime=0.210000 s event:200, rtime=0.190000 s event:300, rtime=0.180000 s event:400, rtime=0.190000 s event:500, rtime=0.190000 s event:600, rtime=0.190000 s event:700, rtime=0.190000 s event:800, rtime=0.180000 s event:900, rtime=0.190000 s event:1000, rtime=0.190000 s event:1100, rtime=0.190000 s event:1200, rtime=0.180000 s event:1300, rtime=0.190000 s event:1400, rtime=0.190000 s event:1500, rtime=0.180000 s event:1600, rtime=0.200000 s event:1700, rtime=0.180000 s event:1800, rtime=0.190000 s event:1900, rtime=0.190000 s 2000 events and 113448552 bytes processed. RealTime=3.850000 seconds, CpuTime=3.750000 seconds You read 29.467157 Mbytes/Realtime seconds You read 30.252948 Mbytes/Cputime seconds Could you also send me the result of TTree::Print on your ntuple? Rene Brun On Fri, 22 Feb 2002, Ed Oltman wrote: > Hello, > > I would like to know if anybody has any advice on performance optimizing > on Win2K - I am using qtRoot "version 3.02/06 25 January 2002". My > application analyzed a root file which consists of a TNtuple. The analysis > requires spinning though the TNtuple multiple times. The TNtuple has 8-10 > branches and can contain up to 10's of millions of entries. Note: I have a > gigabyte of physical memory. I have 2 questions: > > 1. When I first spin through the ntuple, it takes a long time - I can see > that my root process is doing lots of I/O - fine. when I do a .ls I see the > input ntuple "in memory" that is, it shows up on a line starting w/ OBJ:. > However my process memory is about the same size as it was before I read in > the TNtuple. When I spin through the TNtuple subsequent times, it takes > just as long - I my process once again logs lots of I/O. How can I read in > the ntuple in such a way that it lives in memory? > > 2. At some point, I generate an output TNtuple. When I do this, my root > process starts page faulting like crazy but eventually the process memory > size creeps up to the required size. [Note: when I spin through the > TNtuple, its quite a bit faster!] How can I configure root to use start out > with a larger allocated memory so that I don't need to page fault. > > Thanks.. > > Ed Oltman > >
This archive was generated by hypermail 2b29 : Sat Jan 04 2003 - 23:50:42 MET