Я понимаю, что это может быть довольно еретическим вопросом, но я задаюсь вопросом, могу ли я смонтировать файл данных через System.IO.Posix.MMap, а затем cast
, в результате получившийся ByteString в строгий массив какого-либо другого типа? Например. если я знаю, что файл содержит удвоения, могу ли я каким-то образом получить эти mmapped данные в UArr Double, чтобы я мог делать sumU и т. д., и чтобы система виртуальной памяти заботилась о IO для меня? Это, по сути, то, как я имею дело с наборами данных с несколькими GB в моем коде на C++. Альтернативные более идиоматические способы сделать это тоже оценили, спасибо!Кастинг mmapped ByteString для других типов?
Высшие дополнительные баллы за пути Я также могу обрабатывать многоядерные данные :-) Не то, чтобы я требовал или что-то еще.
Thanks; Я боялся, что так будет. Мне никогда не удавалось манипулировать большими наборами данных, когда они должны быть загружены в пространство GC'd любого языка. Мой нынешний подход только к mmap'у обычно работает нормально. Позволит копировать несколько сокращенных наборов данных и посмотреть, как все работает. – billt