Re: Best way to pass large objects between tasks?
Re: Best way to pass large objects between tasks?
- Subject: Re: Best way to pass large objects between tasks?
- From: "Karan, Cem (Civ, ARL/CISD)" <email@hidden>
- Date: Tue, 14 Apr 2009 09:23:39 -0400
- Thread-topic: Best way to pass large objects between tasks?
> >I haven't tried either of the methods I mentioned so far
> (because I'm
> >lazy, sorry:), but what I have tried is I created NSData
> from the large
> >object by using NSKeyedArchiver. It has taken forever, so
> that I had to
> >force-quit the process. That's why I am asking if the same thing is
> >going to happen with piples and DO? Or maybe I'm doing
> something wrong?
>
> If your data has many double values and use encodeDouble:forKey:
> use encodeBytes:length:forKey: instead. encodeDouble:forKey:
> is very very slow. In my case, with encodeDouble:forKey: it
> takes 4 hour and 30 minutes, but with
> encodeBytes:length:forKey: it takes only 21 seconds.
> I never tested for float values but maybe the same.
That may not be the safest way to do things; if you encode on a little
endian machine and decode on a big endian one, the bytes that make up
the double may be swapped. You might be able to do this if you first
encode a constant that has a known pattern as a double, and then encode
all your doubles afterwards. That way, as you are decoding, you can use
some special purpose swap logic to get the bytes in the right order on
your machine by seeing how the known pattern was mangled when it was
archived.
Cem Karan
_______________________________________________
Cocoa-dev mailing list (email@hidden)
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:
This email sent to email@hidden