As I understand it, try/catch blocks should be very fast (zero cost) in the 64 bit evironment. As I can't observe the generation of any exceptions, there has to be some other reason for the slow performance. I can't find any documentation about objc_addExceptionHandler, so I don't know if it is only called when there are exceptions. Telling from the Shark trace, I guess the time is spent generating backtraces. But for what purpose?

8.9%    libgcc_s.1.dylib        _Unwind_GetIPInfo       
7.6%    libgcc_s.1.dylib                _Unwind_GetIPInfo       
7.6%    libgcc_s.1.dylib                        _Unwind_Backtrace       
7.6%    libobjc.A.dylib                         objc_addExceptionHandler        
7.5%    Unknown Library                                 _CFDoExceptionOperation 
        
7.2%    Unknown Library                                         _NSAppKitLock   
1.5%    Unknown Library                                                  
-[NSView nextKeyView]
1.2%    Unknown Library                                                  
-[NSView _primitiveSetNextKeyView:]

Am 11.09.2008 um 15:07 schrieb Matt Gough:


On 11 Sep 2008, at 14:49, Frank Illenberger wrote:

I breaked at objc_addExceptionHandler and it gets called a lot. Here are some example traces:

...

I guess this is normal behavior as these are regular cocoa calls. But why does this consume so much CPU time?

Cheers


Dunno, maybe now that the Obj-C exception ABI is the same as the C++ one for 64-bit apps, there is a lot of extra stuff that needs preparing in case the exception is going to be caught by some C++ code.

Matt

_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to [EMAIL PROTECTED]

Reply via email to