Hi Thomas, Difficult to come with a dignostic without looking into your system. I have no idea of what you mean by "rather slow". >From your class description, I conclude that you have about 20 Kbytes per event. One million entries will make a file of about 20 GBytes. Could you send me: - the result of tree.Print() after filling your Tree. - if possible your class with a small test that is slow. Rene Brun Thomas Bretz wrote: > > Hello rooters, > > I'm writing data like in the following example (using root 3.01/06, with > a '+' in the pragma statement for MyClass): > > { > MyClass *cls = new MyClass; > > TFile file("name", "RECREATE", "title", 0); > TTree tree("name, "title"); > tree.Branch("MyClass", "MyClass", &cls, 320000, 0); > > for (int i=0; i<1e6; i++) > { > FillDataIntoMyClass(&cls); > tree.Fill(); > } > file.Write(); > delete cls; > } > > Because this is rather slow, I used gprof to find out where the time is > spend and if I trust its output, only ~15% of all the time (CPU time, > which should not include I/O) is spend in my part of the program. This > means about 85% of the CPU-time is spent in root (I/O). In this example > speed is really critical. Is there a way to accelerate the root output? > > I don't think that it is a question of hardware limitation because the > machine and disks are really powerfull. > > Rem: MyClass contains four arrays. Two about 1kB, and two around 8kB. > (around 18kB in total) > > Thanks in advance, > Thomas.
This archive was generated by hypermail 2b29 : Tue Jan 01 2002 - 17:51:05 MET