mmap и использование памяти

Я пишу программу, которая получает огромные объемы данных (кусками разного размера )из сети, обрабатывает их и записывает в память. Поскольку некоторые фрагменты данных могут быть очень большими, мой текущий подход заключается в ограничении размера используемого буфера. Если кусок больше максимального размера буфера, я записываю данные во временный файл, а затем считываю файл кусками для обработки и постоянного хранения.

Мне интересно, можно ли это улучшить. Я некоторое время читал о mmap, но я не уверен на сто процентов, сможет ли он мне помочь. Моя идея состоит в том, чтобы использовать mmap для чтения временного файла. Это как-то помогает? Главное, о чем я беспокоюсь, это то, что случайный большой фрагмент данных не должен заполнять мою основную память, вызывая выгрузку всего остального.

Кроме того, считаете ли вы подход с временными файлами полезным? Должен ли я вообще это делать или, возможно, я должен доверять диспетчеру памяти Linux, который сделает эту работу за меня? Или мне вообще что-то другое делать?

14
задан Elektito 24 April 2012 в 18:07
поделиться