Cint Jamming effect?!?


I am experiencing some kind of a jamming effect with interpreted code.
If I am running the attached sample macro with 32 or less function calls, it takes my computer less than a second to run it through. With 33 calls, it takes 12 seconds.
Does cint have some internal buffer which is 32 instructions long? Can I increase it somehow?


Jamming.C (3.78 KB)

This ended up in the wrong thread. Could somebody move it to the cint forum?

Yes CINT dose not generate the intermediate byte code as soon as
the code gets more complex. In your case you better do something like:

void Jamming(int nmax=32) { cout << "The experiment is running..." << endl; int StartTime = time(0); for (int i=0; i<DOITSOMANYTIMES; i++) { //Eventloop for (int j=0;j<nmax;j++) { do_something(j, "SomeName", "SomeTitle", 12.34, 42, 5.6789, "Blah."); } } int StopTime = time(0); cout << DOITSOMANYTIMES << " loops took me " << StopTime - StartTime << " seconds." << endl; }

A new version of CINT is in preparation where we expect this type of threshold to be removed.


Well, in my real world problem (filling histograms), most parameters are changing all the time, so a nested loop won’t do.
I am now compiling the code. Below jamming, this isn’t any faster than cint but it avoids the threshold. Actually, cint’s performance with bytecode generation is amazing!

Thanks for looking into this