[Top][All Lists]

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

Re: [RFC] Header organization of -base & -gui

From: Lars Sonchocky-Helldorf
Subject: Re: [RFC] Header organization of -base & -gui
Date: Thu, 3 Jul 2003 19:35:07 +0200

On 03.07.2003 18:54:16 Nicola Pero wrote:
>> - NeXT/Apple runtime is known/believed to perform better than GNU
>> runtime.
>Hmmm.  Do you have benchmarks ?  I'd be interested in them if you have.
>I thought this was a confused matter open to discussion, with pros and
>cons on each side.
>But the Apple runtime performs better on class method invocations - 
>a fact (I hoped to have the time to fill the gap at some point, but I
>never found that time <wishful sigh>). 

The Apple Runtime uses a cache for Classes and Methods. The name of the 
function in objc4 is

_class_lookupMethodAndLoadCache ()

which gets called by 

objc_msgSend ()

This cache I believe is also the main reason why GNUstep-base doesn't work 
with the Apple runtime:

If a class or method is currently not in cache, 
_class_lookupMethodAndLoadCache () calls class_initialize () which 
subsequently invokes +[NSObject initialize]. If then in turn there is any 
objc message in +[NSObject initialize] this will result in a call to 
objc_msgSend () and _class_lookupMethodAndLoadCache () again. But because 
the class is not loaded yet this ends up in a loop with no good end ;-). 
An example stacktrace of this behaviour is at the end of:


>The GNU runtime has typed
>selectors though, and it's more portable.

Apple's runtime uses assembler and therefore is only working on PPC and 


greetings, Lars

reply via email to

[Prev in Thread] Current Thread [Next in Thread]