Ich habe eine große Datei (4+ Gigs), sagen wir mal, 4 Byte Floats. Ich möchte es als List behandeln, in dem Sinne, dass ich Map, Filter, Foldl usw. verwenden möchte. Anstatt jedoch eine neue Liste mit der Ausgabe zu erstellen, möchte ich die Ausgabe wieder in schreiben die Datei, und muss nur einen kleinen Teil der Datei im Speicher laden. Sie könnten sagen, was für ein Typ namens MutableFileListUmgang mit großen Dateien in Haskell
Hat jemand in dieser Situation vor gelandet? Anstatt das Rad neu zu erfinden, habe ich mich gefragt, ob es einen Hack'schen Weg gibt, damit umzugehen?
Funktioniert nicht mit Dateien über 2 GB auf Windows. –
@ Jonathan: Sind Sie sicher, dass es nicht funktioniert? Die Dokumentation besagt, dass das Modul 'CreateFileMapping' und' MapViewOfFile' verwendet, beide mit den Dateigrößen/Offset-Parametern mit 64 Bit, so dass dieser API-Aufruf für Dateien beliebiger Größe funktionieren sollte (zB http://msdn.microsoft.com/ en-us/library/aa366761% 28VS.85, leichtgewichtig% 29.aspx). Unterbricht das Modul diese Funktionalität? – sth
@sth Ehrlich gesagt weiß ich es nicht genau. Ich gehe weg, was ich im Netz lese. Ich habe diese Einschränkung eines Threads über Speicherkarten auf dieser Site erhalten. Ich habe nichts auf MSDN gesehen, das die Größenanforderungen in beide Richtungen spezifiziert, aber ich glaube nicht, dass ein Programm mehr als 2 GB Speicher bekommen kann, egal wie man es schneidet. Ich irgendwie, was die umgekehrte, file mapped Speicher :) –