![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| Monty |
|
|||
![]() Advanced Lamer ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3511 Регистрация: 3.4.2003 Где: Гваделупа Репутация: нет Всего: 27 |
Динамический массив объектов или сколько я теряю памяти если используются не все элементы внем, т.е. если массив кнопочек (да чего угодно) имеет длину 10, а используется всего три, причем созданны только три, остальные вообще не используются или после использования разрушаются ... вот меня и интересует, теряю ли я память в размере с объект или меньше чем сам объект? Или вообще не теряю
Вот я и не понимаю сколько в общем я трачу памяти -------------------- ... О, вещая моя печаль, О, тихая моя свобода И неживого небосвода Всегда смеющийся хрусталь! |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
По идее, если класс не создан, то в массиме сидит только указатель на мусор (в случае динамического массива, для статичного все указатели указывают на nil).
То есть, кол-во неиспользованных элементов * 4 байта. Ну и плюс память SizeOf() * на кол-во созданых контролов. Это сообщение отредактировал(а) Snowy - 19.5.2005, 16:27 |
|||
|
||||
| Monty |
|
||||
![]() Advanced Lamer ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3511 Регистрация: 3.4.2003 Где: Гваделупа Репутация: нет Всего: 27 |
Да, это логично Добавлено @ 16:30
Что-то она очень маленькое значение показывала ... хотя сегодня еще раз посмотрю -------------------- ... О, вещая моя печаль, О, тихая моя свобода И неживого небосвода Всегда смеющийся хрусталь! |
||||
|
|||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
Ну да, ну да. SizeOf тут не применим. Он покажет только размер структуры TForm, но не ее элементы. Размер маленький, потому что SizeOf покажет размеры не котролов и др. динамических объектов, а только их указатели. Посчитать настоящий объем будет затруднительно... А пустые элементы так и будут 4 байта (точнее SizeOf указателя - не гарантирую, что для 64 битного проца он будет также 32. Да и может ли дельфи компилить проги под 64 бит? Наверное нет... ) |
|||
|
||||
| сок |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 24.6.2005 Репутация: нет Всего: 1 |
не знал что можно создавать динамические массивы объектов...
|
|||
|
||||
| BiZ |
|
|||
|
Unregistered |
var xMassive: array of TForm; //так круче кажется ... SetLength(xMassive, 6); xMassive[0] := TForm.Create(nil); //к примеру ... xMassive[2] := TForm.Create(nil); //к примеру ... xMassive[4] := TForm.Create(nil); //к примеру ... При таком раскладе каждый элемент массива есть не что иное как указатель на объект TForm. И весит каждый элемент ВСЕГДА 4 БАЙТА!!! Чё вы парите тут вообще? весь массив всегда будет весить 6*4=24 байта!!!! А вот размер оперативки будет заметно уменьшаться при новый строках xMassive[4] := TForm.Create(nil); //к примеру ... |
|||
|
||||
| Snowy |
|
||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
Можно создать динамический массив чего угодно.
В ответе так и написано. 4 байта на каждый элемент. (для 32-битных систем).
И это тоже написано. Что, если создать элемент, то память уменьшится на размер структуры TForm. Плюс память на обслуживание окна системой. Точно замерить сложно. Ответ давно дан. Не нужно по 10 раз перемалывать одно и то же. |
||||||
|
|||||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |