Я знаю, что отвечал ранее, однако, это было ответом на другой ответ, а не на ваш вопрос.
Если говорить с вами напрямую, если я правильно понимаю, ваши критерии использования производительности - это пропускная способность.
Это для меня означает, что вы должны смотреть почти исключительно на NUMA в курсе распределителей .
Ни одна из более ранних ссылок; IBM JVM paper, Microquill C, SUN JVM. Охватите этот момент, так что я очень подозреваю их применение сегодня, где, по крайней мере в AMD ABI, NUMA является выдающимся управляющим процессорами памяти.
Руки вниз; реальный мир, фальшивый мир, любой мир ... Технологии запроса / использования памяти с поддержкой NUMA работают быстрее. К сожалению, я сейчас использую Windows, и я не нашел "numastat", который доступен в Linux.
У моего друга * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - это '1020 *.
Несмотря на то, что я могу показывать время от времени, обычно ОЧЕНЬ большое количество запросов памяти локального узла поверх удаленного узла (подчеркивая очевидную производительность пропускная способность преимущество), Вы можете спокойно тестировать себя, и это, вероятно, будет то, что вам нужно сделать, так как ваша характеристика производительности будет очень специфичной.
Я знаю, что во многих отношениях, по крайней мере, более ранние версии 5.x VMWARE работали довольно плохо, по крайней мере в то время, потому что не использовали NUMA, часто требующие страниц от удаленного узла. Тем не менее, виртуальные машины являются уникальным зверем, когда дело доходит до компартментализации или контейнеризации памяти.
Одна из ссылок, которые я привел, касается реализации API Microsoft для AMD ABI, которая имеет специализированные интерфейсы выделения NUMA для использования разработчиками пользовательских наземных приложений;)
Вот довольно недавний анализ , визуальный и все, от некоторых разработчиков надстроек для браузеров, которые сравнивают 4 различных кучи. Естественно, тот, который они разработали , оказывается на вершине (странно, как люди, которые проводят тестирование, часто показывают самые высокие оценки).
Они в некотором смысле охватывают количественно, по крайней мере для их случая использования, какой точный компромисс существует между пространством / временем, как правило, они идентифицировали LFH (о да, и, кстати, LFH - это просто видимость стандартная куча) или подобный подход, по существу, потребляет значительно больше памяти, но со временем может закончиться, используя меньше памяти ... График тоже аккуратный ...
Я думаю, однако, что выбор имплементации HEAP на основе вашей типичной рабочей нагрузки после того, как вы хорошо ее понимаете;) - это хорошая идея, но чтобы хорошо понять ваши потребности, сначала убедитесь, что основные операции выполняются правильно, прежде чем оптимизировать эти шансы и заканчивается;)