Bill Allombert on Tue, 08 Sep 2009 22:12:16 +0200


[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]

Re: TRY/CATCH is unnecessarily slow on OS X


On Thu, Sep 03, 2009 at 08:43:44AM +0200, Lorenz Minder wrote:
> Below are a number of measurements.  Summary:
> 
> * Cost setjmp vs no error checking:
> 	Mac OS:	12x (32 bit)	4.5x (64 bit)
> 	NetBSD:			2.5x (64 bit)
> 	Linux:	+32% (G4)
> 
> * Cost _setjmp vs no error checking:
> 	Mac OS:	+21% (32 bit)	+21% (64 bit)
> 	NetBSD:			+17% (64 bit)
> 	Linux:	+34% (G4)
> 
> * C++ EH seems to cost somewhere between nothing and 8%.  (But the
>  library size goes up by ~10%.)

But what is the performance penaly on the overall library (outside exception) ?

> I find the >30% I get with Linux/G4 relatively expensive, but not as bad
> as the 80% you report on AMD64, and much, much better than the cost for
> BSD-style systems with setjmp().

It seems I did not link against the right pari version. I remade my test and
now I found something about 

  Linux Core2 6600 (64bit) : +20%
  Linux Core2T5500 (64bit) : +18%
  Linux Opteron(64bit): +14% 

So this confirms that the slowdown is around 20% as you said.

Cheers,
Bill.