On Dec 17, 2008, at 12:04, Stanislas Krásnaya wrote:

I've read that, since we're programming in Objective-C, it's more elegant and reliable to use an NSArray stuffed with NSNumber instead of a classic C array. But what I want to do, it's performing classic calculation, like mean value, variance... etc, on floating point numbers. Typically around 1000 of them.

I know that our computers are fast now, but this doesn't mean that we have to not take care of optimization.


So, since NSArray is designed to store all kinds of NSObject's, and mine will just store some NSNumber's, wouldn't it be a bit stupid to use it?

There's nothing inelegant about using a classic C array for this. You can allocate the memory for the array with malloc, for a classic- classic solution, or allocate the memory as a NSData object for a classic-hybrid solution. If you only want to do calculations with the numbers, this seems like the obvious approach.

There's also nothing wrong with using a NSArray of NSNumber objects. You might consider this solution if you think there might be side benefits, or if it is easier to code somehow. For example, if you have a NSArray of NSNumber objects, it's very easy to add a NSTableView to your interface that displays them.

It's unlikely that calculating mean, variance, etc on 1000 NSNumber objects is going to be a performance issue, unless you're doing these calculations over and over.

So, choose the approach that gives the clearest, most maintainable code, then (if necessary) measure the performance to see whether you need to optimize your approach.

FWIW.

_______________________________________________

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 arch...@mail-archive.com

Reply via email to