On Sep 11, 2008, at 8:47 AM, Frank Illenberger wrote:
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?

A little more information.

C++ exceptions and, under the modern ABI, Objective-C exceptions are extremely cheap to set up (@try), but expensive to @throw and @catch.

When the @throw happens, there is a heavy cost to generating the bits necessary to properly unwind the stack.

Unfortunately, the AppKit has an issue where it causes the unwind info to be generated as a normal part of its operation (without throwing an exception).

Thus, certain AppKit operations in 64 bit can be quite slow at this time.

b.bum

Attachment: smime.p7s
Description: S/MIME cryptographic signature

_______________________________________________

Cocoa-dev mailing list ([email protected])

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