Форум программистов, компьютерный форум CyberForum.ru

Фрагментация памяти в С++ - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 20, средняя оценка - 4.75
korisk
12 / 12 / 1
Регистрация: 06.06.2009
Сообщений: 49
02.11.2009, 21:18     Фрагментация памяти в С++ #1
Есть длительно работающая программи интенсивно, работающая с памятью - выделяет освобождает, причем маленькими кусочками. Из-за этого всего фрагментируется куча.

Посоветуйте, что-нибудь, пожалуйста, может какой-нибудь линк "на почитать". Как избавиться от фрагментации памяти? Желательно с минимальными затратами и без написания собственной системы управления памятью.
Спасибо.

PS. Интересуют решения для linux или общие. Спасибо.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
niXman
Эксперт C++
 Аватар для niXman
3133 / 1445 / 49
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
02.11.2009, 21:26     Фрагментация памяти в С++ #2
http://www.google.ru/#hl=ru&source=h...4313e544833b95
odip
Эксперт C++
 Аватар для odip
7226 / 3288 / 59
Регистрация: 17.06.2009
Сообщений: 14,165
02.11.2009, 22:34     Фрагментация памяти в С++ #3
Как избавиться от фрагментации памяти?
Написать свой аллокатор памяти под свою задачу.
Из-за этого всего фрагментируется куча.
А какая разница ? Когда программа закончится, то вся память освободиться.
Или скорость выделения памяти сильно падает ?

Добавлено через 2 минуты
без написания собственной системы управления памятью
Не обязательно все переписывать.
Достаточно переписать ту часть где производится выделение мелких областей памяти.
Причем самому сделать собственный аллокатор памяти поверх malloc(), free().

Вообще если бы ты задачу подробнее описал - а именно в части зачем тебе мелкие куски памяти, то можно сказать что-то более конкретное
Evg
Эксперт С++Автор FAQ
 Аватар для Evg
16934 / 5339 / 328
Регистрация: 30.03.2009
Сообщений: 14,339
Записей в блоге: 26
02.11.2009, 22:37     Фрагментация памяти в С++ #4
Цитата Сообщение от odip Посмотреть сообщение
А какая разница ? Когда программа закончится, то вся память освободиться.
Или скорость выделения памяти сильно падает ?
Из-за фрагментации возрастает потребление памяти процессом (из-за того, что память используется неэффективно)
niXman
Эксперт C++
 Аватар для niXman
3133 / 1445 / 49
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
02.11.2009, 22:42     Фрагментация памяти в С++ #5
Evg, Стоит отметить, что тут не малую(а иногда и основную) роль играет проектирование алгоритмов и программы в целом.
ProNoooob
72 / 72 / 6
Регистрация: 14.10.2009
Сообщений: 121
02.11.2009, 22:47     Фрагментация памяти в С++ #6
Попробуй использовать dlmalloc
Гугл расскажет подробней
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.11.2009, 22:54     Фрагментация памяти в С++
Еще ссылки по теме:

C++ Освобождение памяти в c++
Можно ли разместить переменную в нужную ячейку памяти и реально ли хранить данные, разбросанными по памяти? C++
C++ Фрагментация RAM
Освобождение памяти C++
О памяти C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Evg
Эксперт С++Автор FAQ
 Аватар для Evg
16934 / 5339 / 328
Регистрация: 30.03.2009
Сообщений: 14,339
Записей в блоге: 26
02.11.2009, 22:54     Фрагментация памяти в С++ #7
Цитата Сообщение от niXman Посмотреть сообщение
Evg, Стоит отметить, что тут не малую(а иногда и основную) роль играет проектирование алгоритмов и программы в целом.
Естественно. В многих софтинах имеется свой менеджер памяти
Yandex
Объявления
02.11.2009, 22:54     Фрагментация памяти в С++
Ответ Создать тему
Опции темы

Текущее время: 18:25. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru