Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 20, средняя оценка - 4.75
korisk
12 / 12 / 1
Регистрация: 06.06.2009
Сообщений: 49
#1

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

02.11.2009, 21:18. Просмотров 2497. Ответов 6
Метки нет (Все метки)

Есть длительно работающая программи интенсивно, работающая с памятью - выделяет освобождает, причем маленькими кусочками. Из-за этого всего фрагментируется куча.

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

PS. Интересуют решения для linux или общие. Спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.11.2009, 21:18
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Фрагментация памяти в С++ (C++):

Фрагментация RAM - C++
Почитал о программировании встроенных систем,там говорилось о фрагментации памяти. Например: Есть элемент типа int (4 байта) и массив типа...

Выделить в памяти 1024 ячейки по 8 байт и вывести их адреса(МИНИ менеджер памяти)) - C++
Вот тут появилась такая интересная задача: требуется сделать программу которая управляет 1024 ячейками памяти по 8 байт каждая. т.е. за...

Можно ли разместить переменную в нужную ячейку памяти и реально ли хранить данные, разбросанными по памяти? - C++
Добрый день. Не могу найти информацию по двум вопросам : 1) могу ли я разместить переменную в нужную ячейку памяти. Например: int a...

резервирование памяти/освобождение памяти для трехмерного массива - C++
Необходимо создать трехмерный массив (A), в котором элементы вдоль направления Z выли бы выровнены по 16 байт. Есть две проблемы: ...

Распределение памяти. Динамическое выделение памяти - C++
an-1 an-2 ... a2

Выделение памяти, проверка на утечку памяти - C++
Интересуют два вопроса: 1. Правильно ли устроен алгоритм выделения, удаление и запись ячейки памяти? Может быть, есть более простые...

6
niXman
Эксперт С++
3139 / 1451 / 49
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
02.11.2009, 21:26 #2
http://www.google.ru/#hl=ru&source=h...4313e544833b95
1
odip
Эксперт С++
7159 / 3221 / 59
Регистрация: 17.06.2009
Сообщений: 14,164
02.11.2009, 22:34 #3
Как избавиться от фрагментации памяти?
Написать свой аллокатор памяти под свою задачу.
Из-за этого всего фрагментируется куча.
А какая разница ? Когда программа закончится, то вся память освободиться.
Или скорость выделения памяти сильно падает ?

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

Вообще если бы ты задачу подробнее описал - а именно в части зачем тебе мелкие куски памяти, то можно сказать что-то более конкретное
0
Evg
Эксперт CАвтор FAQ
18248 / 6373 / 438
Регистрация: 30.03.2009
Сообщений: 17,643
Записей в блоге: 28
02.11.2009, 22:37 #4
Цитата Сообщение от odip Посмотреть сообщение
А какая разница ? Когда программа закончится, то вся память освободиться.
Или скорость выделения памяти сильно падает ?
Из-за фрагментации возрастает потребление памяти процессом (из-за того, что память используется неэффективно)
0
niXman
Эксперт С++
3139 / 1451 / 49
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
02.11.2009, 22:42 #5
Evg, Стоит отметить, что тут не малую(а иногда и основную) роль играет проектирование алгоритмов и программы в целом.
0
ProNoooob
75 / 75 / 6
Регистрация: 14.10.2009
Сообщений: 121
02.11.2009, 22:47 #6
Попробуй использовать dlmalloc
Гугл расскажет подробней
0
Evg
Эксперт CАвтор FAQ
18248 / 6373 / 438
Регистрация: 30.03.2009
Сообщений: 17,643
Записей в блоге: 28
02.11.2009, 22:54 #7
Цитата Сообщение от niXman Посмотреть сообщение
Evg, Стоит отметить, что тут не малую(а иногда и основную) роль играет проектирование алгоритмов и программы в целом.
Естественно. В многих софтинах имеется свой менеджер памяти
0
02.11.2009, 22:54
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.11.2009, 22:54
Привет! Вот еще темы с ответами:

Фрагментация оперативной памяти - Windows
Здравствуйте, подскажите пожалуйста в чем проблемы фрагментации оперативная памяти??как там что происходит и что там за проблемы с ней?

Фрагментация|Дефрагментация - Жесткие диски
Добрый день, локальный диск D (фрагментировано 2%), дефграментация не помогает, что делать?

фрагментация жесткого диска - Windows 7
вчера буквалюно проверял фрагментацию жесткого диска - 6%. Седня проверил - 2%. Что за фигня?О_о

Фрагментация страниц Blob-типом - Firebird/InterBase
Здравствуйте. IBAnalyst показывает, что таблицы фрагментированы. В его же справке написано, что в firbird 2.0 должен появиться параметр,...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

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