RE: RE : [ROOT] memory leak in canvas creation / deletion ?

From: Valeri Fine (fine@bnl.gov)
Date: Fri Aug 20 2004 - 17:43:14 MEST


Hello Eric,

> Hello Valeri,
> 
> Please note that this macro was also tested on Linux (cf. my mail)
> 
> (but the effect is the same on Win2000)
> 
> Another even more trivial example (tested on WIN) is :
> 
> 	TCanvas c;
> 	TH2D h("h","h",100,0,10,100,0,10);
> 	int i;
> 	h.Draw();
> 
> 	for (i = 0; i< 10000; i ++) {
> 		c.Draw();
> 	}

I still see no memory leak with ROOT  based on Qt layer (from http://root.bnl.gov
)
 Very likely it is Win32GDK layer feature.

              Valeri
 
> eric
> 
> 
> > -----Message d'origine-----
> > De : Valeri Fine [mailto:fine@bnl.gov]
> 
> > Envoyé : vendredi 20 août 2004 15:02
> > À : eric.anciant@noos.fr; roottalk@pcroot.cern.ch; ANCIANT E.
> > Objet : RE: [ROOT] memory leak in canvas creation / deletion ?
> >
> 
> >
> 
> > Hello Eric,
> >
> 
> > I have tested the ROOT version with Qt layer from
> 
> > http://root.bnl.gov using "perfmon" utility (it is a part of
> 
> > your Windows system) and the macro you mentioned.
> >
> 
> > > macro1 :
> > > {
> > > TCanvas* c;
> > > int i;
> > > for (i=0; i< 10000; i++) {
> > >    c = new TCanvas();
> > >    delete c;
> > > }
> > > }
> >
> 
> > No memory leak was detected yet.
> >
> 
> > Have you another example that may help to reproduce the problem?
> >     Thank you
> >
> 
> > > -----Original Message-----
> > > From: owner-roottalk@pcroot.cern.ch
> > [mailto:owner-roottalk@pcroot.cern.ch]
> > > On Behalf Of eric.anciant@noos.fr
> > > Sent: Thursday, August 19, 2004 4:21 PM
> > > To: roottalk@pcroot.cern.ch; eric.anciant@sodern.fr
> > > Subject: [ROOT] memory leak in canvas creation / deletion ?
> > >
> 
> > > Hello rooters,
> > >
> 
> > > I have in fact two questions one leading to the second one :
> > >
> 
> > > Question 1 :
> > >
> 
> > > Using ROOT 4.00/08 with GDK on WIN2000
> > >
> 
> > >   *   Version   4.00/08       9 July 2004   *
> > > Compiled for win32.
> > > CINT/ROOT C/C++ Interpreter version 5.15.138, May 23 2004
> > >
> 
> > > I suspect a weird memory leak when drawing canvas : I have an
> 
> > > application that display a few canvas (in fact 3) in which
> 
> > I draw and
> 
> > > updates graphs and histograms over hours, meanwhile the memory usage
> > of
> > > the application grows slowly but constantly ( from about 20
> 
> > M to 100's
> 
> > > of Meg, eventually crashing the system). I am quite
> 
> > confident with the
> 
> > > rest of the code, because if I remove the drawing of the canvas
> > (keeping
> > > creation/deletion of histograms and graphs), the leak
> 
> > doesn't appear,
> 
> > > and because of the funniest part : If I iconify the 3 canvases
> 
> > > (graphically using the mouse) the memory usage of the application
> 
> > > suddently drops to very low (and to what I would expect the
> > application
> > > memory usage to be; a few megs ), and then starts again to
> 
> > grow ....
> 
> > > until I de-iconify and re-iconify again the canvases... It
> 
> > looks to me
> 
> > > more like a GDK / microsoft-windows low level
> > interaction
> > > than a root problem, did somebody have seen something equivalent ?
> > >
> 
> > > Question 2 :
> > >
> 
> > > I therefore tried a few things at home on Linux box; namely :
> > >
> 
> > > macro1 :
> > > {
> > > TCanvas* c;
> > > int i;
> > > for (i=0; i< 10000; i++) {
> > >    c = new TCanvas();
> > >    delete c;
> > > }
> > > }
> > >
> 
> > > macro2 :
> > > {
> > > TH2D* h;
> > > int j;
> > > for (j=0; j<10000; j++ ) {
> > >    h = new TH2D("h","h",1000,0,1,1000,0,1);
> > >    delete h;
> > > }
> > > }
> > >
> 
> > > macro1 shows a memory usage of root.exe that grows
> 
> > constantly, macro2
> 
> > > shows a (though oscillating ..) steady memory usage.
> > >
> 
> > > Is this the expected behaviour ?
> > >
> 
> > >
> 
> > > eric
> > >
> 
> > >
> 
> > >
> 
> >
> 
> >
> 
> >
> 
> 
> ***********
> Ce message et eventuellement les pieces jointes sont exclusivement transmis a
> l'usage de leur destinataire. Leur contenu est confidentiel. Si vous n etes pas
> le bon destinataire nous vous demandons de ne pas conserver, copier, utiliser ou
> divulguer cette communication. Merci de le detruire et de me notifier cette
> erreur.
> 
> INTERNET ne permettant pas d assurer l integrite de ce message, SODERN decline
> toute responsabilite au cas ou il aurait ete intercepte ou modifie.
> 
> 
> This message and possibly any attachments are transmitted for the exclusive use
> of their addressee. Their content is confidential. If you are not the intended
> recipient please do not keep, copy, use or disclose this communication to
> others. Also Please delete it and notify the sender at once.
> 
> Because of the nature of INTERNET the sender is not in a position to ensure the
> integrity of this message, therefore SODERN disclaims any liability whatsoever
> in the event of this message having been intercepted and/or altered.



This archive was generated by hypermail 2b29 : Sun Jan 02 2005 - 05:50:09 MET