path/FastImageCache — pull request #23 by cipherCOM (2013-11-25 14:03:10+00:00)
Title: Improved lookup time of MRU entries by changing UUID type

Measurement showed that a huge amount of time is spent looking up entries from the MRU array with the indexOfObject: method. Changing the type of UUIDs and the underlying data structure to an NSOrderedSet increased the performance of e.g. -retrieveImageForEntity:withFormatName:completionBlock: by 34% (measured by accessing all photos in -reloadTableViewAndScrollToTop:). The downside is that no longer a property list format can be used and a NSKeyedArchiver is needed (resulting in slower initial load times, check http://biasedbit.com/nskeyedarchiver-vs-nspropertylistserialization/). Updating from an old version won't work as the metadata format has changed, so calling -reset is necessary.

As a nice byproduct: the public API is more clear on the actual structure of the needed UUID objects. My first usage of this library resulted in strange behavior occurring from unique identifier strings not having the format of a typical UUID. Changing the object type to NSUUID makes it more clear what the library actually needs.