La différence entre l'écriture dans le fichier de manière atomique et pas
Quelle est la différence dans l'écriture de fichiers automatiquement sur l'iPhone (objective-c et non, il n'existe aucune différence de performances entre les deux?
Merci d'avance!
Vous devez vous connecter pour publier un commentaire.
Atomique en général signifie que l'opération
ne peut pas être interrompuesera complète ou n'ont aucun effet. Lors de l'écriture de fichiers, qui est accompli par écrit dans un fichier temporaire, puis le remplacement de l'original avec le temporaire quand l'écriture est terminée.Un crash lors de l'écriture atomique moyen de fichier de l'original n'est pas modifié et il est une poubelle de fichiers qui peuvent être supprimés. Un plantage lors de l'écriture normalement, cela signifierait un bon fichier est corrompu.
Performance sage, le coût est minime. Au cours de l'écriture, vous avez deux copies d'un même fichier. Le remplacement du fichier est une opération très simple au niveau du système de fichiers.
Edit: merci zneak
Écrit atomiquement prend plus de pas - en outre auxiliaire fichier est créé. NSString Classe Référence explique:
Voici l'exemple dans le cas de pLists:
lorsque "OUI", puis pList est mis à jour seulement une fois même si vous exécutez le code plusieurs fois dans XCode,
lorsque "NON" est mis à jour autant que vous exécutez le même code (répété mise à jour).
Systèmes de fichiers n'ont pas à recourir à l'écriture/renommer des cycles pour l'écrit. Systèmes de fichiers qui ont sémantique de verrouillage permet de verrouiller " une partie ou la totalité d'un fichier, ou même dans certains cas faire des choses comme l'ajoute à un fichier, à l'aide avec l'atomicité.
@Randy, à la fois de vos hypothèses au sujet de la fragmentation sont susceptibles d'être mauvais. Sur la plupart des systèmes de fichiers, la rédaction d'un ensemble de fichiers et de clôture, il en résulte une moins fichier fragmenté, et l'écriture d'un fichier volumineux en une seule écriture va certainement entraîner une meilleure utilisation de gros blocs. Si vous signifiait le fichier blocs étaient plus susceptibles d' 'creep' ensemble du disque, qui dépend de la configuration des préférences de votre système de fichiers. Si vous êtes à la rédaction de flash, vous voulez probablement le système de fichiers à ramper à travers l'espace de stockage disponible comme une sorte d'auto-nivellement de l'écrit.