Hi Torsten, I looked at your file and I understand why you get the problem. You have specified split=1 in your class Event. You should specify at least split=2 if you want to see each member of your TClonesArray in a separate branch. If you do T.Print(), you will see: *Br 47 :fgenTracks : *Entries : 186059 : Total Size= 557009404 bytes File Size = 36544499 *Baskets : 8739 : Basket Size= 64000 bytes Compression= 15.24 Any traversal of this branch will load 577 Megabytes in memory ! Rene Brun On Thu, 12 Jun 2003, Torsten Harenberg wrote: > Dear list, > > I tried to adapt the example "test/MainEvent" included in the source tree. > This works fine and produces me an output root file. > > When I try to plot one variable included in a TClonesArray afterwards, the > procedure is very slow and consumes *TONS* of memory (around one Gig), > which is not released afterwards. A second (SIMILAR) Draw crashes my > machine, as it runs out of swap. > > I think the problem is similar to what has been reported by Mathieu > Ribordy on > > http://root.cern.ch/root/roottalk/roottalk02/2340.html > and > http://root.cern.ch/root/roottalk/roottalk02/1979.html > > If you want to reproduce: I put the root file on > > http://www.atlas.uni-wuppertal.de/~harenber/Event.root > > then follow: > > root [0] TFile a("Event.root"); > Warning in <TClass::TClass>: no dictionary for class Event is available > Warning in <TClass::TClass>: no dictionary for class Track is available > root [1] gObjectTable->Print(); > > Object statistics > class cnt on heap size total size > heap size > ================================================================================ > TRootGuiFactory 1 1 28 28 > 28 > TSignalHandler 1 1 36 36 > 36 > TFileHandler 2 2 32 64 > 64 > TList 349 348 44 15356 > 15312 > TObject 162 162 12 1944 > 1944 > TStreamerInfo 28 28 84 2352 > 2352 > TClass 63 63 140 8820 > 8820 > TObjArray 109 109 40 4360 > 4360 > TStreamerBase 27 27 104 2808 > 2808 > TStreamerBasicType 121 121 100 12100 > 12100 > TStreamerObject 7 7 96 672 > 672 > TStreamerObjectPointer 7 7 96 672 > 672 > TStreamerString 10 10 96 960 > 960 > TStreamerObjectAny 2 2 96 192 > 192 > TStreamerBasicPointer 3 3 120 360 > 360 > TProcessID 1 1 36 36 > 36 > TObjString 568 568 20 11360 > 11360 > TAssoc 573 573 20 11460 > 11460 > TPluginHandler 34 34 68 2312 > 2312 > TMethod 299 299 52 15548 > 15548 > TDataType 191 191 40 7640 > 7640 > TColor 229 229 56 12824 > 12824 > TRealData 91 91 36 3276 > 3276 > TDataMember 265 265 76 20140 > 20140 > TBaseClass 26 26 40 1040 > 1040 > TMethodArg 2 2 40 80 > 80 > TGGC 31 0 124 3844 > 0 > TFolder 17 17 36 612 > 612 > TRint 1 1 124 124 > 124 > THashTable 12 12 40 480 > 480 > THashList 10 9 48 480 > 432 > TOrdCollection 8 8 44 352 > 352 > TGMimeTypes 1 1 32 32 > 32 > TObjectTable 1 1 24 24 > 24 > TRandom 2 2 32 64 > 64 > TMessageHandler 1 1 56 56 > 56 > TClassMenuItem 63 63 60 3780 > 3780 > TMethodCall 8 8 60 480 > 480 > TGLayoutHints 1 1 32 32 > 32 > TFile 1 1 220 220 > 220 > TGClient 1 1 84 84 > 84 > TMap 2 0 28 56 > 0 > TStyle 5 5 780 3900 > 3900 > TQClass 3 3 152 456 > 456 > TSystemDirectory 1 1 36 36 > 36 > TEnv 1 1 24 24 > 24 > TGuiFactory 1 1 28 28 > 28 > TGX11TTF 1 1 268 268 > 268 > TTimer 1 0 60 60 > 0 > TVirtualX 1 1 84 84 > 84 > TExMap 1 1 24 24 > 24 > TCint 1 1 228 228 > 228 > TClassTable 1 1 12 12 > 12 > TKey 3 3 80 240 > 240 > TBenchmark 1 1 52 52 > 52 > TBits 1 1 24 24 > 24 > TUnixSystem 1 1 376 376 > 376 > TStopwatch 1 0 68 68 > 0 > TPluginManager 1 1 16 16 > 16 > TGPicturePool 1 1 28 28 > 28 > TProcessUUID 1 1 44 44 > 44 > TGFrame 1 1 72 72 > 72 > TROOT 1 0 292 292 > 0 > -------------------------------------------------------------------------------- > Total: 3360 3322 5400 153492 > 149080 > ================================================================================ > root [2] T->Draw("fgenTracks.x"); > <TCanvas::MakeDefCanvas>: created default TCanvas with name c1 > root [3] gObjectTable->Print(); > > Object statistics > class cnt on heap size total size > heap size > ================================================================================ > TRootGuiFactory 1 1 28 28 > 28 > TSignalHandler 1 1 36 36 > 36 > TFileHandler 2 2 32 64 > 64 > TList 568 568 44 24992 > 24992 > TObject 173 173 12 2076 > 2076 > TStreamerInfo 28 28 84 2352 > 2352 > TClass 101 101 140 14140 > 14140 > TNamed 3 3 28 84 > 84 > TStreamerElement 1 0 96 96 > 0 > TObjArray 307 307 40 12280 > 12280 > TStreamerBase 27 27 104 2808 > 2808 > TStreamerBasicType 121 121 100 12100 > 12100 > TStreamerObject 7 7 96 672 > 672 > TStreamerObjectPointer 7 7 96 672 > 672 > TStreamerString 10 10 96 960 > 960 > TStreamerObjectAny 2 2 96 192 > 192 > TStreamerBasicPointer 3 3 120 360 > 360 > TClonesArray 1 1 48 48 > 48 > TProcessID 2 2 36 72 > 72 > TTree 1 1 292 292 > 292 > TBranchElement 50 50 340 17000 > 17000 > TLeafElement 50 50 68 3400 > 3400 > TBasket 51 51 112 5712 > 5712 > TKey 3 3 80 240 > 240 > TTreePlayer 1 1 44 44 > 44 > TGMenuTitle 7 7 108 756 > 756 > TGCompositeFrame 1 1 80 80 > 80 > TGFrame 5 5 72 360 > 360 > TCanvas 1 1 648 648 > 648 > TBits 15 15 24 360 > 360 > TH1F 1 1 588 588 > 588 > THistPainter 1 1 180 180 > 180 > TUtilHist 1 1 28 28 > 28 > TFrame 1 1 76 76 > 76 > TLatex 5 5 124 620 > 620 > TPaveText 1 1 176 176 > 176 > TGViewPort 1 1 92 92 > 92 > TGCanvas 1 1 88 88 > 88 > TRootCanvas 1 1 264 264 > 264 > TGMenuBar 1 1 92 92 > 92 > TObjString 636 636 20 12720 > 12720 > TMethod 668 668 52 34736 > 34736 > TAssoc 631 631 20 12620 > 12620 > TMethodCall 18 18 60 1080 > 1080 > TPluginHandler 34 34 68 2312 > 2312 > TDataMember 271 271 76 20596 > 20596 > TRealData 368 368 36 13248 > 13248 > TDataType 191 191 40 7640 > 7640 > TColor 229 229 56 12824 > 12824 > TBuffer 51 51 60 3060 > 3060 > TClassMenuItem 124 124 60 7440 > 7440 > TF1 13 13 240 3120 > 3120 > TBaseClass 59 59 40 2360 > 2360 > TMethodArg 2 2 40 80 > 80 > TGGC 31 0 124 3844 > 0 > THashTable 14 14 40 560 > 560 > TFolder 17 17 36 612 > 612 > TRint 1 1 124 124 > 124 > THashList 11 10 48 528 > 480 > TGMenuEntry 54 54 56 3024 > 3024 > TGLayoutHints 6 6 32 192 > 192 > TOrdCollection 8 8 44 352 > 352 > TGMimeTypes 1 1 32 32 > 32 > TObjectTable 1 1 24 24 > 24 > TRandom 2 2 32 64 > 64 > THLimitsFinder 1 1 12 12 > 12 > TGFrameElement 11 11 24 264 > 264 > TMessageHandler 1 1 56 56 > 56 > TQClass 22 22 152 3344 > 3344 > TGPicture 5 5 76 380 > 380 > TGHScrollBar 1 1 164 164 > 164 > TContextMenu 1 1 60 60 > 60 > TGScrollBarElement 6 6 80 480 > 480 > TFile 1 1 220 220 > 220 > TGClient 1 1 84 84 > 84 > TMap 2 0 28 56 > 0 > TGPopupMenu 7 7 124 868 > 868 > TStyle 5 5 780 3900 > 3900 > TSystemDirectory 1 1 36 36 > 36 > TEnv 1 1 24 24 > 24 > TGVerticalLayout 3 3 20 60 > 60 > TGuiFactory 1 1 28 28 > 28 > TExMap 5 5 24 120 > 120 > TGX11TTF 1 1 268 268 > 268 > TTimer 1 0 60 60 > 0 > TGStatusBar 1 1 96 96 > 96 > TTreeFormula 1 1 18496 18496 > 18496 > TVirtualX 1 1 84 84 > 84 > TGVScrollBar 1 1 164 164 > 164 > TCint 1 1 228 228 > 228 > TClassTable 1 1 12 12 > 12 > TBenchmark 1 1 52 52 > 52 > TSelectorDraw 1 1 220 220 > 220 > TUnixSystem 1 1 376 376 > 376 > TAxis 3 3 128 384 > 384 > TStopwatch 1 0 68 68 > 0 > TPluginManager 1 1 16 16 > 16 > TGPicturePool 1 1 28 28 > 28 > TGHorizontalLayout 1 1 20 20 > 20 > TProcessUUID 1 1 44 44 > 44 > TRootContextMenu 1 1 140 140 > 140 > TTreeFormulaManager 1 1 168 168 > 168 > TPaveStats 1 1 204 204 > 204 > TROOT 1 0 292 292 > 0 > -------------------------------------------------------------------------------- > Total: 5103 5065 29524 279896 > 275432 > ================================================================================ > > > > I tried to follow Rene's suggestions on > http://root.cern.ch/root/roottalk/roottalk02/1984.html > > and implemented the SetOwner call in the Event constructor, but this made > -at least for me- no difference. Trying to call a delete in the Event > distructor like > > fgenTracks->Clear("C"); //will also call Track::Clear > frecTracks->Clear("C"); //will also call Track::Clear > fgenTracks->Delete(); > delete fgenTracks; > fgenTracks=0; > > , however, brings up a SEGFAULT in the AddTrack method in > > Track *track = new(tracks[fNrectrack++]) Track(rdmctrack); > > Anybody any further idea, what I did wrong? > > Thanks and best regards, > > Torsten > > P.S.: root version is 3.05/05 11 June 2003, running on a Linux PC > (compiled with ./configure linux) with gcc-3.2 (SuSE 8.1) > > <><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><> > <> <> > <> Torsten Harenberg harenberg@physik.uni-wuppertal.de <> > <> Bergische Universitaet <> > <> FB 8 - Physik Tel.: +49 (0)202 439-2740 <> > <> Gaussstr. 20 Fax : +49 (0)202 439-2811 <> > <> 42097 Wuppertal <> > <> <> > <><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><> >
This archive was generated by hypermail 2b29 : Thu Jan 01 2004 - 17:50:12 MET