Hi Ed, > If I do not call the Draw() method each time, nothing gets displayed. The Draw method needs to be call once and once only. If you already do that and get nothing display then I have to assume that the histogram is deleted and created at each update. It this is the case, you have an obvious optmization available. In most case it is more efficient in the 'displayer' to have the same histogram be drawn and add/sustract to it or even Reset it and keep it displayed. If you can make a small sample example, this would be helpful. Cheers, Philippe -----Original Message----- From: owner-roottalk@pcroot.cern.ch [mailto:owner-roottalk@pcroot.cern.ch]On Behalf Of Ed Oltman Sent: Tuesday, September 03, 2002 8:35 AM To: fine@bnl.gov; 'Roottalk@Pcroot. Cern. Ch' Subject: RE: [ROOT] Performance question: Updating a colz histogram Valeri, Here are some more details (not in order asked) 2. I had the same problem in V 3.02/7 as well as 3.03/8 4. I am using a standalone root based application - e.g. I create an instance of TRint. The application is an MFC SDI application where I took special pains to wrap the root stuff in its own class that does not have #include "stdafx.h" or any other windows/mfc stuff. 1. My application's view class has an OnTimer() method which in turn calls p2DH->Draw("colz") and gPad->GetCanvas()->Update(). 3. If you like, I could make a small mfc project that displays the problem I'm having. Note: you mention in subsequent e-mail that it is not necessary to call the Draw() method each time. If I do not call the Draw() method each time, nothing gets displayed. Note: The histogram is filled in a different thread than it is displayed. I use a win32 semaphore to protect the object's filling with its display. Note 2: In addition to the 2D histogram, I also have a couple of 1-D histograms. [The object to display/update is seleceted at runtime. All objects are filled all the time] The 1D histograms updating never slows down, only the 2D histograms Ed Oltman > -----Original Message----- > From: Valeri Fine [mailto:fine@bnl.gov] > Sent: Friday, August 30, 2002 5:31 PM > To: 'Ed Oltman'; 'Roottalk@Pcroot. Cern. Ch' > Subject: RE: [ROOT] Performance question: Updating a colz histogram > > > Hello Ed, > Sorry, you didn't send an example to reproduce your troubles so I have > to ask you some extra questions: > > 1. What kind of timer do you use: synch or asynch ? > 2. Did you see this problem before (with the previous version of > ROOT) ? > 3. Can you work out a small macro / code to reproduce the problem ? > 4. Do you use "ROOT + macro"; "Root + your custom DLL"; your > ROOT-based application alone ? > > Thank you > Valeri > > -----Original Message----- > From: owner-roottalk@pcroot.cern.ch > [mailto:owner-roottalk@pcroot.cern.ch] On Behalf Of Ed Oltman > Sent: Friday, August 30, 2002 5:35 PM > To: Roottalk@Pcroot. Cern. Ch > Subject: [ROOT] Performance question: Updating a colz histogram > > Hello, > I have an online application which includes a 500x500 bin TH2F which I > display in response to a timer with > > p2DH->Draw("colz"); > gPad->GetCanvas()->Update(); > > (I've previously called gStyle->SetPalette(1,0)) Early on, when the > histogram is still young, the refresh is pretty quick - refreshing at 2 > Hz > uses a small amount (<10%) of the cpu time. Gradually, as the histogram > fills, the refresh time increases - by the time the histogram has a few > hundred thousand entries, (maximum bin contents is in the 10s) the cpu > time > is 80% and climing. > > Is there something I could do to speed things up, short of adjusting the > refresh rate? I am using version 3.03/08 on Win32. Thanks... > > Ed Oltman > > > > >
This archive was generated by hypermail 2b29 : Sat Jan 04 2003 - 23:51:08 MET