On 03.03.2004, at 14:34, David Ayers wrote:
Interesting... I actually prefer the approach that gnustep took in
solving the main issue within -base/NSNumber which returns cached
versions common NSNumber instances. This solves the root of this
particular problem for a wider range of applications. Yet
optimization within GSWeb and GDL2 is needed.
This is a different optimization only solving a small part of the
problem (actually its not really related to the issue that base types
must be piped through objects). It still has significant method call
overheads:
a) it has to call a method to create an object or retrieve a cached one for
a base type
b) it has to call the actual method
c) it has to turn the object back into a base type
At least three times slower for a very common case (in practice you need
to add cache management overhead etc).
This is only one of the association optimizations done in SOPE, there
are various others. Feel free to look into the source, though fast code
is not necessarily readable (but well worth the effort the more complex
code due to the high usage of this code).