Как стать автором
Обновить
0
0
Анатолий @Deazer

Пользователь

Отправить сообщение

Использование альтернативного аллокатора памяти в проекте на C/C++

Время на прочтение4 мин
Количество просмотров18K
Эта статья написана прежде всего для программистов C/C++, использующих в своей работе Visual Studio 2013. Поскольку я, как говорится, totally windows guy, то я не могу оценить полезность этой статьи для программистов, не использующих эту среду в своей работе. Итак.

Не секрет, что стандартный аллокатор new/delete/malloc/free в языке C/C++ не блещет быстродействием. Конечно, всё зависит от реализации, но, если говорить об оной от компании Microsoft, то это факт. Кроме того, стандартная реализация аллокатора обладает еще одним фатальным недостатком — фрагментацией памяти. Если в вашей программе происходят частые выделения/освобождения памяти, вы можете обнаружить, что спустя несколько часов работы ваша программа упала по причине нехватки памяти, хотя свободной памяти еще достаточно — просто в результате фрагментации в пуле аллокатора не осталось свободного участка достаточного размера. (Это, кстати, абсолютно реальный случай, который произошел на одном из проектов, в котором я принимал непосредственное участие.)
И что же делать?
Всего голосов 27: ↑20 и ↓7+13
Комментарии40

Информация

В рейтинге
Не участвует
Откуда
Хоста, Краснодарский край, Россия
Дата рождения
Зарегистрирован
Активность