Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.11.20;
Скачать: CL | DM;

Вниз

Вопрос про организация менеджера памяти   Найти похожие ветки 

 
Тимохов   (2003-11-11 15:07) [0]

Добрый день, знатоки.

Знимаюсь тут оптимизацией памяти для структуры данных с достаточно большим количество элементов. Структура данных схожа с XML, кол-во тегов порядка 1 000 000 штук. Пока это сделано отдельными объектами.

В настоящий момент ведется работа (уже почти доделана) по изменению в предке для всех тегов методики выделения памяти под объект. Для этой цели переписаны методы NewInstance и FreeInstance. Все прекрасно работает, получено при некторых сочетаниях данных 50% экономия памяти (в примере с 1 000 000 штук тегов это порядка 30 мегов).

При этом обнаружен такой интересный эффект: по данным функции AllocMemSize до переделки и после переделки памяти занимается одинаковое количество, а по данным монитора процессов - разное.

Предполагаю почему так происходит: дело в том, что AllocMemSize говорит только о количестве выделенной памяти (т.е. той памяти, которую явно выделил программист), но при этом здесь ничего не говорится о накладных расходах на каждый блок памяти.

Поэтому вопрос! Как в дельфи организован менеджер памяти? Сколько байт памяти накладных расходов требуется на каждый блок памяти?


 
MBo   (2003-11-11 15:11) [1]

http://rsdn.ru/article/Delphi/memmanager.xml


 
Romkin   (2003-11-11 15:12) [2]

Менеджер памяти очень хорош у Delphi, он оптимизирован под выделение малых блоков памяти.
http://rsdn.ru/article/Delphi/memmanager.xml


 
Тимохов   (2003-11-11 15:12) [3]

Спасибо...
Круто...



Страницы: 1 вся ветка

Текущий архив: 2003.11.20;
Скачать: CL | DM;

Наверх




Память: 0.44 MB
Время: 0.009 c
1-65817
Ломброзо
2003-11-10 11:02
2003.11.20
VB ActiveX


14-66104
VictorT
2003-10-28 22:05
2003.11.20
Ищется рассказ.


14-66097
Alexey Lipatov
2003-10-25 14:25
2003.11.20
Специальности программистов


3-65724
Сусанин
2003-11-02 11:44
2003.11.20
Edit mode


6-66035
Nastya
2003-09-24 11:56
2003.11.20
TClientSocket, TWinSocketStream;





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский