Advanced Techniques
Advanced Techniques
- Subject: Advanced Techniques
- From: Arved von Brasch <email@hidden>
- Date: Sun, 14 Jul 2013 09:09:01 +1000
Hello list,
I'm hoping the list might have some recommendations on books or other sources. My web searches aren't turning up too much that is helpful, as so much is geared towards iOS these days.
I have a MacOS X app that was written quite naively some time ago (small, non-public release, for MacOS 10.5). Data sets have grown considerably since it was written, and the problem of responsive interface is now quite glaring. It is a Core Data based app that makes heavy use of stored images and large amounts of text. The images, at least, aren't stored in the Core Data database, rather a file system link is saved to them. This is also true for the larger text stores.
The troubles are particularly with the length of time it takes to open the views that show the images. This is an NSTableView and NSCollectionView that are loaded from the nib at the same time. Saving changes to the text files also takes a lot longer than it should, given the speed that TextEdit can save.
The way I understand it, the NSTableView is probably not the problem, as NSTableViews already loads lazily. NSCollectionView, however, loads everything up front. Looking at other class options, I think what's going to be required is writing a modified NSCollectionView that does lazy loading. I haven't had to do something like that before, and I'm not sure how to approach it.
The other optimisation steps that are required is otherwise mostly going to fall in the "taking advantage of multiple threads" variety. At the moment everything is done on the main thread. Saving and disk heavy access should definitely be done on background threads. I don't have much experience with GCD, and it isn't clear to me how to retrofit this into the existing code. Some architectural changes may be necessary, in order to better take advantage of threads, and the improvements to the OS since Leopard.
So, I'm looking for resources that can help guide from the naive approach to more advanced techniques. I'd appreciate any suggestions.
Thank you,
Arved
_______________________________________________
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