Ooo I didn't pay an attention it is win32gdk-brand. I have no idea how GDK manages threads, and whether it is free of some sort of idle-loops. I am sure neither win32 nor Qt-edition (http://root.bnl.gov) has any sort of idle-loop to consume the time). Anyway first check the simple cause. My first hypothesis remains the same it is optimization. Valeri > > > Hello I don't think any second thread is involved here. > I would have suspected some sort of the compile-time optimization here. > > I believe compiler may have figured out what is final value of "r" with > no real loop implementation in the binary code. > > for(long int i=0; i<100000000; i++) { > r += 0.5; > } > > I mean the method above is not correct to measure the performance > One should take care to break the possible optimization first. > > Valeri > > > > > Hi Thomas, > > > > I can indeed reproduce the same slowdown by a factor of 2. I suspect > that > > this is due to the multi-thread nature of the ROOT implementation on > > Windows. (I.e. the other thread are probably being run). We will > > check further. > > > > Cheers, > > Philippe. > > > > -----Original Message----- > > From: owner-roottalk@pcroot.cern.ch > > [mailto:owner-roottalk@pcroot.cern.ch]On Behalf Of Thomas Nisius > > Sent: Friday, August 08, 2003 7:28 AM > > To: roottalk@pcroot.cern.ch > > Subject: [ROOT] execution speed of compiled programs using ROOT > > > > > > Hi, > > > > when I compile a program that include some root objects, execution > speed > > drops significantly. > > please see the following example: > > > > #include <time.h> > > #include <iostream> > > using namespace std; > > > > #include <TH2D.h> > > #define USE_ROOT > > > > int main(int argc, char* argv[]) { > > > > #ifdef USE_ROOT > > TH2D *h = new TH2D("test","test",64,0,1,64,0,1); > > h->FillRandom("gaus",1000); > > #endif > > > > double r=0; > > double time = clock(); // save the clock > > for(long int i=0; i<100000000; i++) { > > r += 0.5; > > } > > cout << r << endl; > > cout << "Duration: " << clock() - time << endl; > > return 0; > > } > > > > if in this example 'USE_ROOT' is defined the duration is nearly twice > as > > long as without it. > > (note, that only the execution of the loop is taken into account, not > the > > histo filling) > > > > I'm using Root 3.05/07 (win32gdk-version) on WinXP & Win2000 > > Compiler: MSVC++ 6 > > I link libCore.lib and libHist.lib to my Project > > > > Any suggestions? > > > > Kind Regards > > Thomas Nisius > > > ________________________________________________________________________ > __ > > Die sicherste Form der Kommunikation: E-Mails verschluesseln, > Spam-Filter, > > Adressverifizierung, digitale Unterschrift: http://freemail.web.de
This archive was generated by hypermail 2b29 : Thu Jan 01 2004 - 17:50:14 MET