2010-11-05 5 views
5

Ich schreibe eine Anwendung, die Millionen von Berechnungen durchführen wird und die Ergebnisse in vielen Dateien auf der Disc speichern wird. Möglicherweise kann ich Tausende von Dateien unterschiedlicher Größe haben und speichern, bis sie analysiert werden. Danach behalte ich nur ein paar von ihnen, lösche die anderen und starte den Prozess erneut. Für meine Anwendung funktioniert das großartig, aber jetzt mache ich mir Sorgen, dass ich meine Disc wie verrückt fragmentieren werde (meine Disc verwendet NTFS). Das Laufwerk regelmäßig zu defragmentieren ist nicht unter meiner Kontrolle, da ich nicht der Administrator des Computers bin.Wie kann man Festplattenfragmentierung vermeiden?

Gibt es eine Möglichkeit, die Datenträgerfragmentierung zu vermeiden?

Antwort

1

Versuchen Sie, Ihr eigenes Dateiformat zu erstellen, um mehrere Dateien zusammen zu sammeln?

4

Fragmentierung von kleinen Dateien ist im Allgemeinen kein Problem. Wenn die Dateien einmal gelesen werden, ist es nicht wirklich wichtig - es ist nur ein echtes Zeitproblem, wenn eine große Datei in vielen Teilen ist und die Festplatte viele Versuche unternehmen muss, um alles zu bekommen.

Die offensichtliche Lösung besteht nicht darin, viele kleine Protokolldateien zu schreiben, sie zu einer großen Datei zusammenzufassen - oder eine Datenbank zu verwenden, für die sie da sind.

3

Verwenden Sie eine Datenbank, es ist für diese Art von Sache gemacht.

1

Ich würde persönlich sagen, dass Sie als Programmierer sollten Sie sich keine Sorgen über Betriebssystem-Probleme wie diese zu viel, wenn Sie auf einer eingebetteten Plattform arbeiten. (Zum Beispiel, woher wissen Sie, dass die nächste Version des Ziel-Betriebssystems das Problem für Sie nicht gelöst hat?)

Allerdings, wenn eine Datenbank ist keine Option (es scheint wie eine ziemlich offensichtliche Lösung dass Sie die Daten in weniger, größere Dateien schreiben könnten.

0

Was ist mit dem Erstellen einer anderen Partition für die Verwendung durch Ihr Programm? Sie könnten dann tun, was Sie wollen, auf der Partition (D :) und blasen Sie es zwischen den wichtigsten Läufen Ihrer App (anstatt Verschwendung Zeit defragmentieren). Noch besser, lassen Sie Ihre Anwendung einfach auf ein externes Laufwerk schreiben und halten Sie es vollständig von Ihrem Hauptsystem fern.

+0

Bitte lesen Sie http://meta.stackexchange.com/questions/28416/what-is-the-policy-on-signatures-and-links-in-answers-for-so-questions. Wie an anderer Stelle auf meta angemerkt, "Ähm, Sie erkennen, dass Links in Antworten nicht aufgeführt sind, oder?" –

1

Wenn Ihre Dateien weniger als 4096 Byte enthalten, wird auf einer NTFS-formatierten Partition keine Fragmentierung auftreten. Die Clustergröße für NTFS, wenn 4KB, also sogar eine 1-Byte-Datei wird 4KB auf der Festplatte verwenden. Schauen Sie sich einfach die Dateieigenschaften einer Datei an. Es gibt Eigenschaften für Größe und Größe auf der Festplatte.

Verwandte Themen