Как мне использовать распределитель мелких объектов Loki?

Мне нужно использовать распределитель небольших объектов Loki, но я очень смущен тем, как он работает. Я прочитал документацию и множество форумов, но это не имеет смысла: некоторые из них говорят использовать stl, другие используют пользовательские аллокаторы. Мне просто нужно иметь возможность проверить его производительность с выделением и освобождением объектов разных размеров. Может ли кто-нибудь привести небольшой пример того, как его использовать?


person Gregory    schedule 25.04.2010    source источник
comment
Вы читали «Современный дизайн C++»? Там есть целая глава об этом.   -  person    schedule 25.04.2010
comment
Да, раздел 4.9, но я не понимаю, как smallobject и smallobjectallocator сочетаются друг с другом. Я думал, что распределитель должен исключить использование операторов new/delete, но как мне создать объекты для передачи в распределитель?   -  person Gregory    schedule 25.04.2010


Ответы (2)


Если вы посещаете проект Loki, возможно, вы не захотите использовать SmallObject. Он работает медленнее, чем новый по умолчанию. Не знаю почему, но некоторые ребята говорили здесь: http://sourceforge.net/проекты/loki-lib/forums/forum/93009/topic/3828398

person Dean Chen    schedule 05.04.2011
comment
Ничто в его вопросе не предполагает, что он не должен использовать его для того, что он делает. Наиболее важным применением пулов объектов является предотвращение фрагментации памяти. - person namuol; 03.05.2013
comment
-1 это заблуждение. В связанном обсуждении только говорится, что в этом конкретном (угловом) случае Локи был медленнее. Он работает медленнее, чем новый по умолчанию, который следует по крайней мере изменить на В некоторых случаях он работает медленнее, чем новый по умолчанию, хотя это обычно можно сказать обо всех распределителях. - person odinthenerd; 29.11.2013

Хорошо, лучшее, что у меня получилось, это сделать Loki's Small Object Allocator совместимым с STL. Для этого я только что создал класс-оболочку для класса SmallObjAllocator в Loki в соответствии с http://www.codeproject.com/kb/cpp/allocator.aspx?fid=16541&df=90&mpp=25&sort=Position&tid=1677312

person Gregory    schedule 26.04.2010