Hi Pasha, Your difference in time has nothing to do with Streamer customization but with split/no-split. The automatic Streamers implemented in version 3.01 will be as efficient as your trick and will be more portable. If you run with version 3.01 and have your shared lib containing your TCalTower class, simply do: gROOT->GetClass("TCalTower")->GetStreamerInfo()->ls(); to see what the automatic Streamer will do on your class. In addition the automatic Streamer algorithm will check that the data members are really consecutive in memory. In your example, where you mix shorts with floats in the same class, you may have some surprises on some 64 bit machines (when working in 64 bit mode). In your example, you can play with the split level to split your TCaldataBlock class and not split the TClonesArray. Rene Brun modes.Pasha Murat (630)840-8237@169G wrote: > > > > P.S. In case of no compression customization of Streamers can significantly improve > > > the I/O performance (I saw improvements by a factor of 3), so it seems to be a > > > very reasonable option to consider. > > > > Rene Brun wrote: > > I am surprised by your statement about the factor 3. Could you send me > > an example of a class where you obtain this result? > > > > > Hi Rene, > > take a look at http://ncdf41.fnal.gov/murat/Stntuple/html/TCalDataBlock.html. > > For this class, after turning off compression, I saw a factor of 3 difference > between the I/O rate in split (4.2 MBytes/sec on read) and non-split > (14 MBytes/sec on read) modes on FCDFSGI2.FNAL.GOV using ROOT 2.26.x > (FNAL nomenclature) compiled with KCC-4.0 in debug mode. > I attribute the difference to the customized TCalTower::Streamer - see > > http://ncdf41.fnal.gov/murat/Stntuple/html/src/TCalTower.cxx.html#TCalTower:Streamer > > -best, Pasha
This archive was generated by hypermail 2b29 : Tue Jan 01 2002 - 17:50:52 MET