Мне нужно использовать распределитель небольших объектов Loki, но я очень смущен тем, как он работает. Я прочитал документацию и множество форумов, но это не имеет смысла: некоторые из них говорят использовать stl, другие используют пользовательские аллокаторы. Мне просто нужно иметь возможность проверить его производительность с выделением и освобождением объектов разных размеров. Может ли кто-нибудь привести небольшой пример того, как его использовать?
Как мне использовать распределитель мелких объектов Loki?
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
Ничто в его вопросе не предполагает, что он не должен использовать его для того, что он делает. Наиболее важным применением пулов объектов является предотвращение фрагментации памяти.
- person namuol; 03.05.2013
-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