It's a mixed graph structure. Basically, I'm storing all unique nodes in an NSMutableArray, then using NSPointerArrays to build the adjacency lists. It works really nicely for learning/building the graph, but it does seem as though searches are a little slower. My guess is that this is because I'm now iterating over a lot of null values (which I wasn't before). But, as Graham says, I should really verify this before going any further with altering the data structures...
J. On 2013-06-22, at 8:10 PM, Ken Thomases <k...@codeweavers.com> wrote: > On Jun 22, 2013, at 9:56 PM, James Maxwell wrote: > >> I've recently been working on an optimized version of a pretty complex >> project. The big problem before was memory usage, and I'm happy to say that >> I've tackled that really well. However, in order to do this I switched from >> using NSMutableDictionaries to sparse NSPointerArrays. On the down side, I'm >> finding that the new build is a little bit slower -- an outcome I really >> didn't expect. Thinking through it a bit, it occurred to me that it may be >> because my data structures are now sparse arrays, with the data stored by >> index, and thus generally contain a fairly large number of null values. I'm >> thinking that my iterations may have slowed down because of the sparseness. >> Is there some decent way around this? >> >> I've thought creating my sparse arrays using NSHashTable (keyed by >> NSIntegers) instead of NSPointerArray. Does this seem like a reasonable way >> to speed things up? > > It's really hard to say. You should probably start at the high level and ask > about data structures and algorithms that can achieve the sort of memory-time > tradeoff you want. What is it that you're trying to achieve? > > Regards, > Ken > _______________________________________________ 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: https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com