> 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.
> 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.
> 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.
After thinking about it, I also suspect Versions to be the culprit.
I will ask DTS about that issue.

Thanks,
Thomas

> 
> 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

Reply via email to