Ну, частые {де}аллокации вполне могут убить перформанс
Деаллокации можно делать асинхронно: убрали из очереди задачу, отдали менеджеру памяти, и он может дальше в background всё делать. Но обычно держат пул структур для повторного использования. Поэтому, всё сводится просто к записи в другой список.