> Trygve Inda wrote:
> 
>> Each dictionary (or object with properties) will need to hold
>> roughly 9
>> textual strings, and there will be on the order of 10,000 objects
>> in the
>> array. I am guessing that dictionary will perform better than a
>> predicate
>> filter given the number of objects.
> 
> 
> Never guess at performance.  Always measure.  For one thing, "perform
> better" may be irrelevant.  "Good enough" is the only criterion worth
> evaluating.  If worse performance is good enough, then better
> performance serves no purpose (ignoring other tradeoffs, such as
> power consumption).  If array search is 10 msecs, and dictionary
> search is 10 usecs, the user will never perceive the thousand-fold
> difference if the search occurs at most 10 times per sec.
> 
> In addition, if the objects are ordered in the array, a binary search
> instead of linear is simpler than managing a parallel dictionary for
> keyed retrieval.  Binary search is O(log2(n)) worst-case.
> http://en.wikipedia.org/wiki/Binary_search_algorithm
> 
> It almost seems like you're choosing representations and algorithms
> primarily on the existence of classes, instead of what might work
> best.  That is, because predicate filter classes exist, you don't
> have to write that class, so you've decided to use it for searching
> arrays instead of other algorithms that may have substantially better
> performance, but for which you'd have to write non-trivial code (or
> find it on the web).  And the only tradeoffs you're making are
> between varieties of existing Apple-supplied classes, e.g.
> NSDictionary vs. NSArray with predicate-search, rather than looking
> for third-party classes.
This is probably true since this is a very minor part of my app... I simply
need an array to display in a table with the added functionality of being
able to locate a record uniquely (each object in the array has a unique ID
as one of it's properties).

T.


_______________________________________________

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