Я использую BinaryReader (MemoryStream(MyByteArray)
) для чтения записей переменного размера и обработки их всех в памяти. Это хорошо работает, пока мой байтовый поток, который находится в массиве, имеет размер менее 1,7 ГБ. После этого (что является максимальным размером целого числа в моей 64-битной системе) вы не можете создать массив байтов большего размера, хотя реальной памяти у меня достаточно. Поэтому мое решение состояло в том, чтобы прочитать поток байтов и разделить его на несколько массивов байтов.
Однако теперь я не могу «читать» границы массива байтов, и, поскольку мои данные имеют переменный формат, я не могу гарантировать, что массивы байтов всегда заканчиваются на всей записи.
Это должно быть распространенной проблемой для людей, обрабатывающих очень большие наборы данных, которым все еще нужна скорость.
Как мне справиться с этой проблемой?