|
|
  |
IAR DLib heap manager, как узнать размер свободной памяти в куче? |
|
|
|
Jan 6 2010, 14:11
|
Участник

Группа: Участник
Сообщений: 25
Регистрация: 4-08-09
Пользователь №: 51 740

|
Перерыл почти всё, нигде не могу найти библиотечную функцию (видимо её вообще нет) или хотя бы самописную реализацию функции возвращающей количество байт свободного места в куче для DLib'овского менеджера памяти. Может кто занимался этим вопросом и подскажет варианты решения?
|
|
|
|
|
Jan 6 2010, 21:49
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(salvian @ Jan 6 2010, 17:11)  Перерыл почти всё, нигде не могу найти библиотечную функцию (видимо её вообще нет) Здравая мысль  Цитата или хотя бы самописную реализацию функции возвращающей количество байт свободного места в куче для DLib'овского менеджера памяти. Без знания организации менеджера и доступа к его структурам это невозможно. Но исходники в pro версиях есть. Цитата Может кто занимался этим вопросом и подскажет варианты решения? Поскольку простейший менеджер яйца выеденного не стоит, то напишите/возьмите самописный. Один из вариантов (с комментариями почему именно так сделано) под свои нужды я даже на этом форуме выкладывал.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Jun 21 2010, 09:38
|
Профессионал
    
Группа: Свой
Сообщений: 1 481
Регистрация: 10-04-05
Пользователь №: 4 007

|
Цитата(Xenia @ Jun 21 2010, 11:50)  А мне всегда казалось, что размер кучи не определяют, а задают в проекте (там же, где задаются размеры стека/ов). Так зачем же определять, да еще и с помощью библиотечной функции, то, что заранее жестко задано? Речь идет, насколько я понимаю, именно о статистике загрузки кучи, а не о ее объеме. А именно, сколько блоков выделено, сколько памяти осталось и прочее. Очень полезно это знать при отладке на предмет оценки утечек памяти, например. Второе. Никак не пойму коллег. Столько дебатов всегда вокруг "стандартных" библиотек, которые поставляются как черные ящики. Под себя из исходников можно такую библиотеку за пару дней сделать. Всегда все будет понятно, что к чему.
|
|
|
|
|
Jun 21 2010, 17:00
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
QUOTE (Xenia @ Jun 21 2010, 11:50)  а задают в проекте... Крайне порочный вариант  используемый в примитивных менеджерах. Heap должна отдаваться вся оставшаяся свободная память, иначе дурдом - память есть, но не используется. QUOTE (jack_avenger @ Jun 21 2010, 10:25)  Чтоб написать свой менеджер памяти у меня опыта нет. Ну так я уже писал, что на этом форуме выкладывал http://electronix.ru/forum/index.php?showt...mp;#entry746045
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Jun 21 2010, 17:07
|
Профессионал
    
Группа: Свой
Сообщений: 1 481
Регистрация: 10-04-05
Пользователь №: 4 007

|
Цитата(Xenia @ Jun 21 2010, 13:45)  Ничего подобного - исходники библиотек лежат в \scr\lib\, где с ними можно ознакомиться. А при желании даже перекомпилировать библиотеку по своему вкусу. Если у вас нет исходников, то это означает только то, что вы пользуетесь EV или KS версией компилятора, а не FULL. 1. Если есть исходники, надо их почитать, понять и не морочить остальным голову. 2. Исходники исходникам рознь. 3. У меня все, что нужно - есть. И ветку эту не я затеял.
|
|
|
|
|
Aug 31 2011, 15:19
|
Участник

Группа: Участник
Сообщений: 25
Регистрация: 4-08-09
Пользователь №: 51 740

|
лучше поздно, чем никогда: __iar_dlmallinfo() __iar_dlmalloc_stats() подробнее: http://supp.iar.com/Support/?note=28545
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|