On 5 Feb 2013, at 10:38, Thomas Zoechling <thomas.zoechl...@gmx.at> wrote:
> > Thanks for your response, >> Given the right conditions, NSFileWrapper can make writing vastly more >> efficient by writing hard links for unchanged files, rather than recreating >> them afresh. Have you determined whether this is happening at all? > Currently I am trying to figure out what those conditions are :) If originalContentsURL is supplied, a directory wrapper checks its child wrappers against that directory. If a file exists there by the same name and with the same modification date, it gets hardlinked, rather than written out from scratch. > >> In my experience Versions tends to be pretty inefficient about its work. > I wonder what NSDocument's private _preserveContentsIfNecessaryAfterWriting > (see above call stack) uses to determine whether a file has to be copied or > not. Certainly as of 10.8, NSDocument cunningly makes use of the previous version of the document, rather than writing it out anew. But I believe Versions then copies that whole doc regardless. > >> Are you seeing it block the main thread though? That can generally be >> avoided. > No. Saving and Version preservation are off the main thread. > That's why I almost didn't notice the vast amount of copying that's going on > after each save. > > My usage of NSDocument & file packages seems to be straightforward. > I didn't overwrite any of the write* methods, I keep a root file wrapper for > the lifetime of each NSDocument instance, ... > > What am I doing wrong? There must be a way to avoid this unnecessary > copying... Versions has no knowledge of your file wrapper I suspect. You may well be into DTS incident territory looking for a way to speed this up. _______________________________________________ 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