filestream — php получает файловый поток в раздел большего файлового потока

Может показаться странным, но у меня есть огромный файл, и мне нужно обработать его, получить диапазоны потока и обращаться с ними как с самими потоками, которые затем я могу рекурсивно получить из потока меньшего размера.

Проблема, которую я пытаюсь избежать, — это копирование огромных объемов данных в память, скажем, у вас есть XML-файл объемом 4 ГБ, я хотел бы открыть его потоком файлов.

Я могу найти в потоке определенный токен, а затем продолжить поиск завершающего токена. Этот диапазон байтов может иметь размер 2 ГБ, что означает, что размещать его в переменной нецелесообразно.

Я мог бы написать обертку вокруг «переменной» и любую попытку чтения или записи в нее, я мог бы контролировать, например, сказать, что я хочу найти в этой переменной другой токен / терминатор, а затем вернуть другой поток, представляющий этот диапазон байтов. тоже.

Таким образом, все это будет похоже на удержание местоположения offset + range в огромном файле без копирования каких-либо данных в память, мне просто нужно будет сохранить диапазоны начального / конечного байтов для каждой «переменной», а затем, когда я Я абсолютно уверен, что хочу прочитать данные в переменную, я могу их экспортировать.

Это позволило бы обойти проблему хранения огромных объемов данных в памяти, и я знаю о проблемах с производительностью, я бы предпочел решение, которое работало, чем решение, которое использовало гигабайты памяти

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]