Was sind die Nachteile (falls vorhanden) der Verwendung von Speicherabbilddateien zum Lesen (Dateien normaler Größe) gegenüber dem Ausführen derselben mit der CreateFile ReadFile-Kombination?Speicherzuordnung von Dateien im Vergleich zu CreateFile/ReadFile
Antwort
Sie benötigen komplexeren Code zum Einrichten der Dateizuordnung als zum einfachen Öffnen und Lesen. Die Dateizuordnung ist für den wahlfreien Zugriff auf einen Dateiabschnitt gedacht. Wenn Sie das nicht brauchen, kümmern Sie sich nicht um die Dateizuordnung.
Auch wenn Sie Ihren Code auf eine andere Plattform portieren müssen, werden Sie es viel einfacher und schneller machen, wenn Sie keine Dateizuordnung verwenden.
Mit ReadFile/WriteFile haben Sie deterministische Fehlerbehandlung Semantik. Wenn Sie Speicherabbilddateien verwenden, werden Fehler zurückgegeben, indem eine Ausnahme ausgelöst wird.
Darüber hinaus, wenn die Speicherabbilddatei die Festplatte (oder noch schlimmer, das Netzwerk) treffen muss, kann das Lesen des Speichers einige Sekunden (oder sogar Minuten) dauern. Abhängig von Ihrer Anwendung kann dies zu unerwarteten Störungen führen.
Wenn Sie ReadFile/WriteFile verwenden, können Sie asynchrone Varianten der API verwenden, um dieses Verhalten zu steuern.
Sie haben auch mehr deterministische Leistung, wenn Sie ReadFile verwenden, insbesondere wenn Ihr E/A-Muster vorhersehbar ist - speicherorientierte E/A ist oft zufällig, während ReadFile fast immer seriell ist (da ReadFile an der aktuellen Dateiposition liest und rückt die aktuelle Dateiposition vor).
Ein großer Vorteil der Dateizuordnung ist, dass sie den Systemcache nicht beeinflusst. Wenn Ihre Anwendung über ReadFile exzessive I/O-Vorgänge ausführt, wird Ihr Systemcache größer und verbraucht mehr und mehr physischen Speicher. Wenn Ihr Betriebssystem 32 Bit hat und Sie viel mehr als 1 GB Speicher haben, dann haben Sie Glück, denn auf 32 Bit Windows ist die Größe des Systemcaches auf 1 GB begrenzt. Andernfalls verbraucht der System-Cache den gesamten verfügbaren physischen Speicher, und der Speichermanager beginnt bald damit, die Seiten anderer Prozesse auf die Festplatte zu löschen, wodurch die Festplattenvorgänge intensiviert werden, anstatt sie tatsächlich zu verringern. Der Effekt ist besonders auf 64-Bit-Windows spürbar, wo die Cache-Größe nur durch den verfügbaren physischen Speicher begrenzt ist. Das Datei-Mapping führt andererseits nicht zu einem Überladen des System-Caches und verschlechtert gleichzeitig nicht die Leistung.
- 1. req.locals im Vergleich zu res.locals im Vergleich zu res.data im Vergleich zu req.data im Vergleich zu app.locals in Express-Middleware
- 2. Binäre Serialisierung im Vergleich zu JSON im Vergleich zu xml
- 3. Dateisperrung im Vergleich zu Semaphoren
- 4. App.Config im Vergleich zu AppName.exe.Config
- 5. Speicherzuordnung im virtuellen Adressraum (VAS)
- 6. Vergleich von BMP-Dateien?
- 7. Importieren eines Namespace im Vergleich zu Dateien in PHP
- 8. Benennung von Modellen im Vergleich zu MonoBehaviours
- 9. Nachteile von TestNG im Vergleich zu jUnit?
- 10. AesManaged im Vergleich zu RijndaelManaged
- 11. itertools.islice im Vergleich zu Listenscheibe
- 12. Spray.Routing im Vergleich zu Play.api.mvc.Controller
- 13. FogBugz im Vergleich zu OnTime
- 14. Arrays im Vergleich zu JSON
- 15. ILookup im Vergleich zu IGrouping
- 16. Sicherheit von Tomcat im Vergleich zu WebSphere im Vergleich zu WebLogic
- 17. ES6-Module im Vergleich zu HTML-Importen
- 18. XDocument.Descendants() im Vergleich zu DescendantNodes()
- 19. LocalBroadcastManager im Vergleich zu Callbacks
- 20. QDBusAbstractAdaptor im Vergleich zu QDBusAbstractInterface
- 21. DoubleBuffered im Vergleich zu SetStyle
- 22. Drupal7 im Vergleich zu Drupal6?
- 23. time.time im Vergleich zu timeit.timeit
- 24. Ermitteln, wo die Speicherzuordnung im Kern stattfindet
- 25. Set-Location im Vergleich zu SetCurrentDirectory
- 26. Javas Classloader im Vergleich zu Gläsern innerhalb von Gläsern
- 27. Zwei Dateien Vergleich
- 28. OS: Speicherzuordnung
- 29. Speicherzuordnung Problem
- 30. REST im Vergleich zu SOAP und im Vergleich zu einfacher Website, etc