On Jun 18, 2008, at 13:06, Markus Spoettl wrote:

I did profile it but it's not my code that is slow. It's the call to [archiver finishEncoding] that's taking so long (see the Shark trace below.

Regards
Markus

3.5% 57.0% CoreFoundation __CFSetFindBuckets2 2.6% 52.0% CoreFoundation __plistNumberEqual 4.0% 27.9% CoreFoundation CFEqual 1.1% 23.7% CoreFoundation __CFNumberEqual 10.3% 22.6% CoreFoundation CFNumberCompare 6.9% 11.9% CoreFoundation __CFNumberGetValue 3.8% 3.8% commpage [libSystem.B.dylib] __memcpy
        ...
4.9% 20.5% CoreFoundation CFNumberIsFloatType 15.6% 15.6% CoreFoundation CFNumberGetType

Yes, but look at where the time is *really* being spent. At a guess, finishEncoding is comparing every number object against every other number object to see if it can archive just one object of each distinct numeric value. With the number of objects you said you're using, this O(n**2) optimization -- if that's what it's doing -- is hideously expensive.


_______________________________________________

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