Am 11.09.2008 um 18:15 schrieb Bill Bumgarner:

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.

Thanks for this important information. Is there any hope that this issue will be fixed for Leopard or should we hold back our 64 bit versions until Snow Leopard?

Cheers

Frank

_______________________________________________

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