• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: NSMutableArray sorting
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: NSMutableArray sorting


  • Subject: Re: NSMutableArray sorting
  • From: Ben Trumbull <email@hidden>
  • Date: Mon, 22 Dec 2008 13:55:52 -0800


On Dec 22, 2008, at 8:13 AM, Adam R. Maxwell wrote:

On Dec 22, 2008, at 1:09 AM, Ben Trumbull wrote:

I've never seen it documented though perceived performance would indicate this is indeed the case

Generally, implementation details about caching behaviors falls isn't something that gets formally documented. It's not part of the API contract, and can change some from release to release.


That said, Robert is right that NSSortDescriptor does significant caching throughout the sorting. It assumes the results of valueForKey are stable for the duration of the sorting operation. If your custom comparison function is based on valueForKey, NSSortDescriptor will do a much better job than - sortedArrayUsingFunction. That said, NSSortDescriptor is really only happy with keys and keypaths, and overriding its comparison method will disable the caching.

In fact, I discovered this while trying to figure out why an NSSortDescriptor subclass with a comparison override gave such abysmal performance; it was calling valueForKeyPath: so many times while sorting a few thousand objects that it filled the autorelease pool and crashed the app. A lot of time looking at Shark traces for Apple's sorting led me to write my own NSArray sort method that gives similar performance, even when using NSSortDescriptor subclasses. Unfortunately, Apple wasn't interested in that.


I would recommend you encourage other people who want to see that change file enhancement requests at bugreport.apple.com

- Ben

_______________________________________________

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


References: 
 >Re: NSMutableArray sorting (From: Ben Trumbull <email@hidden>)
 >Re: NSMutableArray sorting (From: "Adam R. Maxwell" <email@hidden>)

  • Prev by Date: Re: C++ instance variables not destructed if NSZombieEnabled
  • Next by Date: NSString property: copy or retain?
  • Previous by thread: Re: NSMutableArray sorting
  • Next by thread: warning: unused parameter '_value'
  • Index(es):
    • Date
    • Thread