Текущий архив: 2005.12.25;
Скачать: CL | DM;
Вниз
Как узнать размер выделенной памяти? Найти похожие ветки
← →
dRake © (2005-11-29 21:06) [0]Есть указатель, на кусок памяти, выделенной через AllocMem(),
можно ли узнать потом по этому указателю размер данный на которые он ссылается?
← →
dRake © (2005-11-29 21:08) [1]На всякий случай - не "на размер данных" а на "размер куска памяти"
← →
jack128 © (2005-11-29 21:16) [2]теоретически можно, но это не документировано, поэтому не стоит так делать..
← →
Суслик © (2005-11-29 21:18) [3]изучай getmem.inc и читай статью mystic"а не www.delphikingom.ru
но я согласен с [2]
← →
Palladin © (2005-11-29 21:25) [4]:) ну вообщето автор программы должен знать сколько он выделил памяти... правда в современной редакции Delphi это совсем не обязательно... разве что для развлекухи...
← →
dRake © (2005-11-29 22:11) [5]jack128 ©
>теоретически можно, но это не документировано, поэтому не стоит так >делать..
Ну я потому и спросил - ведь прочищая память через FreeMomory() менеджер должен же знать сколько ее выло выделенно, я не лазил в кишки менеджера, но предполагаю что там есть что-то типа пула указателей через который можно узнать сколько на каждый выделенно памяти :) Поиск по хелпу ничего не дал, но всетаки хотелось бы напрячь именно его. Хаками делать не хочу, ведь реализация менеджера может и поменяться в будущем.. :)
>Palladin ©
>:) ну вообщето автор программы должен знать сколько он выделил памяти... >правда в современной редакции Delphi это совсем не обязательно... разве >что для развлекухи...
Автор то знает, вот сохранить _красиво_ это знание не позволяет архитектура некоторой кривотени под которую автор пишет :)
Короче пришлось всетаки заводить свой пул, жаль :)
← →
Palladin © (2005-11-29 22:16) [6]это что еще за кривотень, и для чего в ней необходимо такое столь спецефичское знание?
← →
jack128 © (2005-11-29 22:34) [7]dRake © (29.11.05 22:11) [5]
но предполагаю что там есть что-то типа пула указателей через который можно узнать сколько на каждый выделенно памяти :)
Сейчас дельфи под рукой нету, но вроде по отрицательному смещению размер блока храниться.. Хотя действительно непонятно,
> что еще за кривотень ;)
← →
dRake © (2005-11-30 12:22) [8]2 Palladin
>то что еще за кривотень, и для чего в ней необходимо такое столь >спецефичское знание?
Военная тайна :)
jack128
>Сейчас дельфи под рукой нету, но вроде по отрицательному смещению >размер блока храниться.. Хотя действительно непонятно,
Гм.. а если это смещение кто нибудь затрет?
← →
Плохиш © (2005-11-30 12:30) [9]
> Гм.. а если это смещение кто нибудь затрет?
Тогда виноват как всегда будет Билл Гейтс и его "кривая винда", которая всегда падает, потому что программист затёрший память программирует только идеальные безглючные программы, а винда ... ну ... криваяяяяя....
← →
Digitman © (2005-11-30 12:42) [10]
> а если это смещение кто нибудь затрет?
смещение "затереть" нельзя по определению.
можно "затереть" то что находится по смещению.
BMM никак не ограничивает (и правильно делает, ибо заточен под производительность, а не под "защиту от дурака") тебя как программиста от возможности что-то там "затереть" в его внутренних структурах, и если ты умудрился (осознанно или неосознанно) нагадить там, то это целиком и полностью лежит на твоей программистской совести)
← →
dRake © (2005-11-30 16:12) [11]2 Digitman
>можно "затереть" то что находится по смещению.
Ясное дело :) Подумаешь - опечатался :)
>и если ты умудрился (осознанно или неосознанно) нагадить там, то это >целиком и полностью лежит на твоей программистской совести)
Ну осознанно гадить я не собираюсь - если разрабы BMM это учли то все ок : ) Просто на первый взгяд - не самое прозрачное решение этой проблемы
← →
AlexWlad © (2005-11-30 20:12) [12]Почитай здесь, полезно. http://www.rsdn.ru/article/Delphi/memmanager.xml
← →
jack128 © (2005-11-30 20:24) [13]dRake © (30.11.05 16:12) [11]
Просто на первый взгяд - не самое прозрачное решение этой проблемы
отнюдь, ИМХО самое очевидное решение. Таже техника используется и с строках и в дин массивах..
Страницы: 1 вся ветка
Текущий архив: 2005.12.25;
Скачать: CL | DM;
Память: 0.48 MB
Время: 0.011 c