Я знаю, что без пула памяти постоянные вызовы malloc
и free
приводят к фрагментации памяти. Однако современные архитектуры имеют MMU, которые связывают физическую память в очень большое пространство виртуальной памяти. Следовательно, операционная система может дефрагментировать свою физическую память, не повреждая выделенные места для запуска пользовательских программ. Благодаря размеру пространства виртуальной памяти исключение malloc
менее подвержено возникновению.
Но ... Стоит ли беспокоиться о фрагментации памяти?
Я предполагаю, что когда-нибудь ОС начнет реорганизацию своей физической памяти, чтобы удовлетворить новый запрос malloc
, тогда это повлияет на общую производительность. Как долго эти операции могут занять? Как часто они происходят?