Wissen, ob eine Datei in den Dateisystem-Caches gespeichert ist

8

Die Dokumente für NSDataReadingOptions state:

  

NSDataReadingUncached

     

Ein Hinweis auf die Datei sollte nicht in den Dateisystem-Caches gespeichert werden. Wenn Daten einmal gelesen und verworfen werden, kann diese Option die Leistung verbessern.

Das macht alles Sinn. Ich bin neugierig, ob es eine Möglichkeit gibt zu wissen, ob eine Datei bereits in den Dateisysem-Caches enthalten ist.

Wenn ich beispielsweise eine große Menge an Datei lesen muss, kann es sinnvoll sein, Dateien zu priorisieren, die sich bereits im Cache befinden.

    
Mike Abdullah 07.09.2011, 14:48
quelle

1 Antwort

4

Ich fürchte, hier können wir nur einige Vermutungen weitergeben, da hierzu keine offizielle Dokumentation vorliegt.

  • Das Dateisystem von iOS soll das Hierarchical File System (HFS) sein wie das von OS-X (siehe iOS Dateisystem HFS? )
  • HFS verwendet Unified Buffer Cache (UBC)
  • UBC speichert Dateidaten in Chunks anstatt der gesamten Datei - dies ist der erste Punkt, selbst wenn ein Teil der Datei zwischengespeichert wird, können Sie nicht wissen, ob ganz Datei wird zwischengespeichert
  • Es gibt keine APIs oder Kernel-Befehle, um den Inhalt von UBC zu steuern (damit Ihre Frage mit NEIN beantwortet wird).

Einige interessante Links zum Lesen:

Die Option sicherzustellen , dass auf eine Datei schnell zugegriffen werden kann, besteht darin, die Datei auf eine Seite des virtuellen Speichers abzubilden, wie im selben Dokument von Apple beschrieben.

    
MrTJ 24.05.2012 10:29
quelle

Tags und Links