Вопрос про высокоэффективную работу с памятью
В последнее время я работаю над высокопроизводительными решениями обработки данных (гигабиты в секунду). Я изучаю информацию по повышению производительности за счет более эффективной работы с памятью.
Я бы хотел понять, какие преимущества есть у двух следующих вариантов:
- Специализированный распределитель;
- Объектный пул.
Мне пришлось потратить много времени на эксперименты, которые дали мне понять, что нюансов намного больше, чем мне казалось изначально.
Например, я был убежден, что хэштаблица будет работать в разы быстрее, если все узлы таблицы будут браться из пула, а не запрашиваться из распределителя. Эксперимент показал, что даже для операций добавления и удаления элементов пул не дал и 10% прироста производительности, по сравнению с использованием стандартного механизма распределения памяти.