Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.04.01;
Скачать: [xml.tar.bz2];

Вниз

как узнать сколько памяти занимает какой-либо объект?   Найти похожие ветки 

 
SB.John   (2002-03-21 12:47) [0]

Например TEdit.

Сорри, если такой вопрос уже был


 
Alx2   (2002-03-21 12:55) [1]

Например, определяем размер экземпляра класса TForm:
Cardinal(Pointer(Integer(TForm)-40)^)


 
Alx2   (2002-03-21 13:51) [2]

Вот еще проще: TEdit.InstanceSize :)


 
Юрий Зотов   (2002-03-21 13:59) [3]

Плюс память, выделенная под Text. И плюс другая динамически выделяемая объектом память, если таковая имеется. То есть, в общем случае задача вряд ли имеет решение.


 
Alx2   (2002-03-21 14:10) [4]

>Юрий Зотов © (21.03.02 13:59)
Тогда надо решить что считать занимаемой памятью. Тем более, что многие данные могут быть общими.

Наверное, более удобно использовать минимальный размер экземпляра класса так как это дает размер некоторого сплошного участка памяти, минимально необходимого для размещения непосредственно объекта-экземпляра.


 
SB.John   (2002-03-22 08:17) [5]

Всем спасибо. Оба метода работают и показвают одинаковые значения, но что-то очень уж маленькие. форма занимает 752 байта. А почему тогда простейшее приложение (1 пустая форма и все) жрет 1.7 Мб ОЗУ? Не простейшее (работа с БД через БДЕ) до 20 Мб при размере экзешника 2.0 Мб.


 
Alx2   (2002-03-22 08:41) [6]

С этого и надо было начинать :)
Здесь связано в большей степени с объемом исполняемого кода (который, кстати, не входит в размер объектов) с ресурсами, хранимыми в exeшнике, с используемыми системными библиотеками ...etc.
Вообщем говоря, вопрос этот регулярно поднимается: поищи по форуму, например слово, KOL.


 
reonid   (2002-03-22 11:55) [7]

Если со всеми канвасами, списками компонентов и прочей
динамически выделяемой памятью, то можно так:

ams0 := AllocMemSize;
Form := TForm.CreateNew(nil);
ams1 := AllocMemSize;
FormSize := ams1 - ams0;


 
Юрий Зотов   (2002-03-22 12:13) [8]

> reonid © (22.03.02 11:55)

Но ведь компонент может перераспределять память в процессе своей работы! Скажем, если к Вашему коду просто добавить:

Form.Caption := Form.Caption + "!!!"

то результат будет уже другим.


 
reonid   (2002-03-22 12:24) [9]

>Юрий Зотов
Конечно. Это всего лишь оценочная величина.
Просто это несколько более реалистичная оценка, нежели ИнстансСайз.



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

Форум: "Основная";
Текущий архив: 2002.04.01;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.005 c
14-296
NLO
2002-02-19 13:08
2002.04.01
Решение уравнения


3-73
GarryBaldy
2002-03-10 16:41
2002.04.01
Один маленький вопросик


3-66
Malder
2002-03-08 14:37
2002.04.01
ЛЮДИ, помогите. Такая ошибка... я ничего не понимаю


7-321
Aleksandr
2001-12-28 11:08
2002.04.01
Как узнать, крупный или мелкий экранный шрифт установлен в системе?


14-312
Дмитрий_Б
2002-02-20 14:09
2002.04.01
Пересылка файлов по ЛВС





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский