Re: Fastest way to convert an NSDate into an NSString
Re: Fastest way to convert an NSDate into an NSString
- Subject: Re: Fastest way to convert an NSDate into an NSString
- From: Keith Blount <email@hidden>
- Date: Mon, 25 Jan 2010 15:53:41 -0800 (PST)
Many thanks for all the suggestions, much appreciated.
Although -timeIntervalSinceReferenceDate: may indeed be a workable solution as the XML is our own format so I could make this choice, for now I think I'd like to retain a human-readable date. Mike's suggestion of creating one NSDateFormatter and passing all of the dates through that (as opposed to relying on the standard methods which most likely create a formatter per-instance) boosted performance significantly, so I'm going to see if I can squeeze more speed elsewhere and go with that.
Thanks again!
All the best,
Keith
--- On Mon, 1/25/10, Mike Abdullah <email@hidden> wrote:
> From: Mike Abdullah <email@hidden>
> Subject: Re: Fastest way to convert an NSDate into an NSString
> To: "Keith Blount" <email@hidden>
> Cc: email@hidden
> Date: Monday, January 25, 2010, 8:33 PM
> This approach is probably creating a
> new NSDateFormatter for each date processed. What if you
> create your own formatter and use that for all dates?
>
> On 25 Jan 2010, at 20:23, Keith Blount wrote:
>
> > Hello,
> >
> > I am in the process of converting the data format for
> my application from one that just uses the NSKeyedArchiver
> methods to archive my objects to a file on disk to using the
> NSXML classes to generate a custom XML file (I need to do
> this for compatibility purposes). My main data object is
> essentially a (potentially very long) list (or rather tree)
> of items, each of which have two or three dates associated
> with them (among other things).
> >
> > Having completed the initial conversion process, it
> turns out that currently my XML-writing methods (using
> NSXMLElement, NSXMLDocument etc) are much, much slower than
> using NSKeyedArchiver. Using Sample, it turns out that a lot
> of the time is spent converting the NSDates for each of the
> items in my list to string objects. I have tried this using
> two different methods:
> >
> > NSDate *someDate = ...
> >
> > [xmlElement addAttribute:[NSXMLNode
> attributeWithName:"SomeDate" stringValue:[someDate
> descriptionWithLocale:nil]]];
> >
> > and
> >
> > NSXMLNode *attribute = [[NSXMLNode alloc]
> initWithKind:NSXMLAttributeKind];
> > [attribute setName:@"SomeDate"];
> > [attribute setObjectValue:someDate]
> > [xmlElement addAttribute:attribute];
> > [attribute release];
> >
> > But either way suffers the same performance hit. So,
> my question is, does anyone know of a much faster and more
> efficient way of converting NSDates to NSStrings? (A
> possible solution would be to change my data model to store
> these dates as strings internally so that the conversion is
> already done when they come to be written to file, but I was
> hoping for a more elegant solution.)
> >
> > Many thanks and all the best,
> > Keith
> >
> >
> >
> > _______________________________________________
> >
> > 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
>
>
_______________________________________________
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