mmap vs sbrk, сравнение производительности
Какой из этих звонков в среднем быстрее? Я слышал, что mmap быстрее для небольших распределений, но я не слышал ни того, ни другого. Любая информация о производительности для них была бы хороша.
1 ответ
Вы должны пометить это с конкретной реализацией (например, linux
) так как ответ, конечно, зависит от реализации. Сейчас я возьму Linux, так как он самый популярный.
С этим сказал, brk
теоретически более оптимизируемый, и на практике он работает примерно на 10% быстрее на моей машине. Выделив одну страницу, я получаю следующие времена:
brk
: минимум 2550 циклов, типичные 2650 цикловmmap
: минимум 2700 циклов, типичные 2800 циклов
Я помню, что слышал что-то вроде brk
возможность пропустить блокировку mmap
семафор, который бы объяснил несоответствие.
Примечание: я обновил это время после настройки моего теста, чтобы сделать фиктивные вызовы до синхронизации, чтобы гарантировать, что весь код будет в кеше.