есть ли скрытые опасности моего пользовательского распределителя памяти

Недавно я писал настраиваемый распределитель памяти , См. Подробную информацию в этой статье настраиваемое выделение памяти ..

благодаря ответу Дэвида Хаммена , теперь я могу правильно освобождать память полиморфных объектов. тогда, кажется, я могу использовать макрос MYNEW для выделения памяти и создания объекта, использовать макрос MYDEL для уничтожения объекта и освобождения памяти , также может быть отслеживание памяти.

но я не уверен, можно ли его использовать в сложной проектной среде (например, сложный дизайн множественного наследования ..), есть ли скрытые опасности?

ПРИМЕЧАНИЕ: меня не спрашивают, как сделать диспетчер памяти, как перегрузить оператор new / delete (глобальный или для класса), я просто хочу знать, есть ли проблемы с этим методом в реальной разработке проекта. Спасибо за любой ответ.


person xfxsworld    schedule 06.12.2012    source источник
comment
imo, пользовательский распределитель памяти автоматически опасен.   -  person Reinderien    schedule 06.12.2012
comment
Почему вы используете собственный распределитель памяти вместо использования по умолчанию? (Есть несколько причин, я хочу знать, какие из них применимы к вам.) Если вам нужен STL для использования вашего распределителя, вам нужно определить шаблон типа std :: allocate ‹›.   -  person brian beuning    schedule 06.12.2012
comment
@brian beuning по двум причинам: 1. отслеживание распределения. 2. управлять распределителем памяти. например: используйте nedalloc lib для оптимизации нового / удаления на win-xp os. как вы сказали, когда мне понадобится настраиваемый распределитель STL, я определю шаблон STLAllocator, но также буду использовать MYNEW / MYDEL для выделения / освобождения внутренней памяти.   -  person xfxsworld    schedule 06.12.2012
comment
Этот вопрос требует обсуждения. Однозначного ответа нет. Наверное, надо закрыть.   -  person Jive Dadson    schedule 06.12.2012
comment
Почему бы не взглянуть на tcmalloc Google из gperftools (code.google.com/p/gperftools)? Он даже позволяет легко профилировать ваш код. Это своего рода сборщик мусора для размещения небольших объектов.   -  person gvd    schedule 06.12.2012
comment
пока я не забыл, с tcmalloc вам нужно только установить ссылку на него, и он автоматически начнет его использовать. Конечно, это зависит от ваших потребностей. Для некоторых приложений вы увидите улучшение производительности, для других - нет.   -  person gvd    schedule 06.12.2012