Преимущества анонимного mmap по сравнению с malloc при нехватке памяти

Я запускаю код обработки большого массива (на Pentium под управлением Linux). Размеры массивов достаточно велики, чтобы процессы могли обмениваться местами. Пока это работает, вероятно, потому, что я стараюсь сохранять непрерывность чтения и записи. Однако вскоре мне придется работать с массивами большего размера. В этом случае поможет ли переход на анонимные mmapped-блоки?

Если да, не могли бы вы объяснить почему?

Насколько я понимаю, mmap реализует отображаемый в память файл, смонтированный из раздела tmpfs, который из-за нехватки памяти возвращается к механизму подкачки.Я хотел бы понять, как mmap делает это лучше, чем стандартный malloc (ради аргумента я предполагаю, что это действительно лучше, я не знаю, так ли это).

Примечание: пожалуйста, не предлагайте устанавливать 64-битную и более RAM. К сожалению, это не вариант.

5
задан san 24 November 2011 в 23:30
поделиться