Насколько я понимаю текст, цель распределителя состоит в том, чтобы максимизировать Pi (сумма выделенной памяти в момент i ).Пиковое использование до k является отношением максимума того, что может быть выделено, деленным на размер кучи при k .
, поскольку существует ряд alloc и free at i , если распределитель слишком простой и плохо обрабатывает запросы, он может быть не в состоянии ответить на другой запрос выделения (например, из-задля фрагментации, см. пример ниже).
Интеллектуальный распределитель может обеспечить максимальную полезную нагрузку за счет более медленного ответа.
С другой стороны, у вас может быть быстрый распределитель, который не сможет максимизировать совокупную полезную нагрузку Pk после ряда запросов.
Чтобы дать (простой) пример, имеющий эту цепочку запросов
R1: alloc(1000)
R2: alloc(2000)
R3: alloc(1500)
R4: free(R1)
R5: free(R2)
R6: alloc(3000) => use space from R1+R2?
На R6 базовый распределитель может быть не в состоянии понятьон может повторно использовать пространство, освобожденное от R1 и R2, что дает низкое отношение пиковое , а размер кучи не нужен больше, чем следовало бы.
Умнее, но с вероятностьюза счет большего количества процессоров /resources .