Каковы недостатки выделения памяти с помощью mmap
(с MAP_PRIVATE и MAP_ANONYMOUS), чем с использованием malloc
? Для данных в области функций я все равно использовал бы стек стека и, следовательно, не malloc.
Один недостаток, который приходит на ум, заключается в динамических структурах данных, таких как деревья и связанные списки, где вам часто требуется выделять и освобождать небольшие фрагменты данных. Использование mmap
было бы дорого по двум причинам: одному для выделения в степени сложности 4096 байт, а другой - для выполнения системного вызова.
Но в других сценариях, как вы думаете, malloc
лучше, чем mmap
? Во-вторых, я переоцениваю недостаток mmap
для динамических структур данных?
Одно из преимуществ mmap
over malloc
Я могу думать о том, что память сразу возвращается в ОС, когда вы выполняете munmap
, тогда как с malloc/free
, я думаю, память uptil точка прерывания сегмента данных никогда не возвращался, но сохранялся для повторного использования.