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