Die Kopiergeschwindigkeit einer Datei von einem PC auf ein USB-Flash-Laufwerk begann bei 30 MB / s und ging auf 5,8 MB / s zurück. Warum?

5

Wenn ich eine 8-GB-Datei vom PC auf ein USB-Flash-Laufwerk kopiere, beginnt die Geschwindigkeit bei etwa 30 MB / s ... vielleicht 28 MB / s, und nach einer Minute sinkt sie allmählich auf 15 MB / s. s und schließlich bei 5,8 MB / s einpendeln.

Aber ich dachte, wenn es eine Festplatte ist, dann gibt es wahrscheinlich den RAM-Cache und auch den internen Festplatten-Cache und wird das Kopieren von Dateien vom PC auf die Festplatte zunächst schnell erscheinen lassen.

Bei einem USB-Flash-Laufwerk sollte jedoch kein interner Cache für das USB-Flash-Laufwerk vorhanden sein. Gibt es einen RAM-Cache dafür, weshalb das anfängliche Kopieren so schnell zu sein scheint?

太極 太極 無極 而 而
quelle
Wenn Sie die beiden vorhandenen Antworten ergänzen, möchten Sie das Flash-Laufwerk möglicherweise mit HD Tune vergleichen und prüfen, ob es tatsächlich so schnell ist. Wenn ja, würde das mit den beiden bisherigen Erklärungen übereinstimmen.
Nathaniel

Antworten:

7

Windows puffert den Schreibvorgang so lange wie möglich, sodass der erste Block schneller schreibt als der Rest. Das Display zeigt den Gesamtdurchschnitt an, ist also anfangs hoch und fällt langsam auf die tatsächliche Schreibgeschwindigkeit des Flash-Laufwerks ab, die vermutlich etwas unter 5,8 MB / s liegt.

Obwohl Windows Schreibvorgänge für USB-Laufwerke wie diese standardmäßig nicht lange im Cache hält (geschriebene Daten werden für kurze Zeit oder unmittelbar nach dem Schließen der Datei auf die Festplatte geschrieben), puffert es das Schreiben noch ein wenig, während gerade geschrieben wird Der Kopiervorgang ist möglicherweise noch nicht abgeschlossen, und der Kopiervorgang verfügt möglicherweise über einen eigenen Puffer, sodass er so schnell wie möglich liest, bis er voll ist. Die anfängliche Geschwindigkeit sieht also schneller aus als die Gesamtgeschwindigkeit. Dies ist auch der Grund, warum die Anzeige des Kopierfortschritts nach einem langen Schreibvorgang manchmal für ein oder zwei Sekunden bei 100% bleibt - wenn der Kopiervorgang die Datei schließt, wird der Aufruf der Funktionsblöcke "Schließen" ausgeführt, bis die letzten Datenblöcke vorhanden sind geschrieben.

Es ist möglich, das Betriebssystem anzuweisen, vollständig ungepufferte Schreibvorgänge auszuführen, aber nur sehr wenig Code tut dies (Windows Explorer nicht), da dies einer Reihe potenzieller kleiner Optimierungen (im Betriebssystem und im Controller des Laufwerks) im Wege steht kann Schreibvorgänge beschleunigen.

David Spillett
quelle
2

Ich denke, es ist einfach eine schlecht implementierte Zeitberechnung. Die anfängliche Schätzung berücksichtigt hauptsächlich die Lesegeschwindigkeit von der Festplatte. Es wird dann im Laufe der Zeit angepasst, sobald mehr Zeitinformationen verfügbar sind.

Mein Lieblings-Dateimanager hat ein Kopier-Plugin, das die Zeit nur schätzt, wenn es etwas gelesen und geschrieben hat, und in Situationen wie diesen viel genauer ist (Quelle und Ziel haben sehr unterschiedliche Geschwindigkeiten).

RomanSt
quelle
superuser.com/questions/43562/… - weitere Details dazu.
RomanSt