Hi Damir, I guess I am responsible for the effects you are seeing. Around version 2.23 I submitted a change to the drawing engine. Before the change the drawing speed was canvas size independ, it would have taken 14 sec in both of your cases. I made the algorithm smarter. If you draw your histogram with a simple line, it decides whether draw it in low or high res mode. In low-res mode, it first looks up the number of pixels of your canvas in the horizontal direction. Then, for each pixel it will calculate the minimum and maximum vertical pixel and will then draw a vertical line connecting them, obviously saving a lot of time when the canvas is smaller for details look in TGraph.cxx and serach for the following lines // Make here decision whether it should be painted in high or low resolution Int_t lowRes = 0; Here the algorith starts. I thought it was the best kept secret in ROOT, oh well you find out :-} Eddy > X-Authentication-Warning: pcroot.cern.ch: majordomo set sender to owner-roottalk@root.cern.ch using -f > Date: Fri, 16 Feb 2001 15:04:23 +0100 > From: Damir Buskulic <buskulic@lapp.in2p3.fr> > X-Accept-Language: en > MIME-Version: 1.0 > To: roottalk@pcroot.cern.ch > Subject: [ROOT] drawing speed in online monitoring > Content-Transfer-Encoding: 7bit > X-Filter-Version: 1.3 (wren) > > Hi, > > There was a thread a few months ago about drawing speed of ROOT. I'm > trying to replace PAW routines by ROOT ones in an online data display > program. The main observed difference is the drawing speed in the case > of ROOT, which is much slower than PAW. While I can understand this (a > factor of two in the best case) it is difficult to understand the > variation of drawing speed with the canvas size. Try the following macro > : > > { > gBenchmark->Start("toto"); > c1 = new TCanvas("c1","test",10,10,700,700); > h = new TH1F("h","h",1000,0,10); > for (int i=1;i<100;i++) { > h->Fill(gRandom->Gaus(5,1.5),1); > h->Draw(); > gPad->Update(); > } > gBenchmark->Show("toto"); > } > > on my machine this needs around 14 s real time to be completed (Alpha > XP1000). > change the size of the canvas to 50x50 (not usable, it's just for > demonstrating the effect), the real time goes down to 2.8s ! > > Though fons explained the speed difference between PAW and ROOT, he > stated that the drawing speed should not depend much on the canvas size. > This is true for CPU time but not for real time. > > I also tested on a distant display, and the results are the same (14s > and 3s). > > In our context, and if this figure cannot be changed, I don't see yet > how to use root to display in real time a set of 10 histograms or plots. > > Anyone has a suggestion ? it will be welcome ! > > Cheers > > Damir > -- > ===================================================================== > | Damir Buskulic | Universite de Savoie/LAPP | > | | Chemin de Bellevue, B.P. 110 | > | Tel : +33 (0)450091600 | F-74941 Annecy-le-Vieux Cedex | > | e-mail: buskulic@lapp.in2p3.fr | FRANCE | > ===================================================================== > mailto:buskulic@lapp.in2p3.fr Eddy A.J.M. Offermann Renaissance Technologies Corp. Route 25A, East Setauket NY 11733 e-mail: eddy@rentec.com http://www.rentec.com
This archive was generated by hypermail 2b29 : Tue Jan 01 2002 - 17:50:36 MET