Re: benchmarking TClonesArray vs STL vector

Chris Green (greenc@fnal.gov)
Wed, 16 Dec 1998 08:34:46 -0600 (EST)


> I have now a few comments concerning Chris Green's mail.
> We do not play any special trick in TClonesArray. We simply exploit
> at best a standard (and not well known) C++ functionality.
> Chris mentions reliability problems with TClonesArray.
> Could you forward to us any evidence/description of these problems?

Hi, Rene.

I wasn't suggesting you used any `tricks'. I was merely trying to suggest
that it may be possible to write an allocator for an STL container which
will do the same intelligent things regarding object/memory reuse as your
TClonesArray. It may not, of course -- I haven't studied either
TClonesArray or STL allocators in the required detail.

As for the problems, I was using 2.00/13 compiled with KCC v3.3f on Linux
glibc2 using gcc 2.7.2.3 for the C compiler at optimization levels K2 (for
C++) and O2 (for C) (I re-wrote the other makefiles slightly to cope with
OPTS and COPTS). The compile flags were as follows:

CXXFLAGS = --signed_chars -D_EXTERN_INLINE=inline \
--display_error_number \
--diag_suppress 191 -fPIC -I$(OPENGL)/include -DR__GLIBC
CFLAGS = -Wall -fPIC -DR__GLIBC
CINTCXXFLAGS = --signed_chars -D_EXTERN_INLINE=inline \
--display_error_number \
--diag_suppress 191 -fPIC -DG__REGEXP -DG__UNIX
-DG__SHAREDLIB \
-DG__OSFDLL -DG__ROOT -DG__REDIRECTIO
CINTCFLAGS = -Wall -fPIC -DG__REGEXP -DG__UNIX -DG__SHAREDLIB \
-DG__OSFDLL -DG__ROOT -DG__REDIRECTIO

The dictionaries were copied rather than generated -- they could not be
generated successfully.

I compiled Pasha's benchmarking program (K2 or K0, it doesn't matter).
When running (eg) 10000 events of 1000 nodes, the program crashes in the
constructor for TObject after 2094 events. I would suggest though, that
you try to do the same thing with your latest version of ROOT rather than
duplicate my problem with an older version.

I hope this is enough information to allow you to reproduce the problem.

Cheers,
Chris.

--
Chris Green. HEP, Purdue University. CDF SVXII project. 
Based at Fermilab. MAIL greenc@fnal.gov; PHONE (630) 840-2308