![]() |
Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply |
![]() ![]() ![]() |
|
Delphist |
|
|||
![]() Delphist Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2145 Регистрация: 3.2.2004 Где: всегда в сети Репутация: нет Всего: 3 |
Как узнать сколько памяти занимает объект наследованный от TObject.
-------------------- ProcessInfo 1-ая моя программа (аналог spyxx.exe с гораздо большим функц-ом - внедрение dll в адр. простр. процесса, перехват API-функций, разбор приложения на окна мн.др). Когда-то давным-давно использовал это... |
|||
|
||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 16 Всего: 459 |
TInherFromObject.InstanceSize; - вернет размер экземпляра объекта.
Добавлено через 36 секунд Это метод класса -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
Fox_in |
|
|||
Новичок Профиль Группа: Участник Сообщений: 31 Регистрация: 30.4.2007 Репутация: нет Всего: нет |
кажется так:
|
|||
|
||||
Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 30 Всего: 484 |
Я даже сразу тебе скажу, что вернёт... Результат будет равен 4 байта ;-)
В общем случае правильно InstanceSize. Но и он далёк от совершенства. Кто знает, сколько памяти может выделять инстанс во время своей работы... Один лишь FastMM знает. Но даже он не скажет сколько памяти просил инстанс. Максимум покажет факт выделения. А кто просил память... Это только по коду можно выяснить... Вобщем гарантированного способа нет. |
|||
|
||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 16 Всего: 459 |
Ну да InstanceSize, это только размер самих полей объекта, а если поля это указатели, то объем выделенный для них памяти, не считается в InstanceSize, да и не может, ведь экземпляры объекта одного и того же класса могут иметь самый разный размер, от нескольких байт до сотен мегабайт. Яркий пример TMemoryStream.
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
Fox_in |
|
|||
Новичок Профиль Группа: Участник Сообщений: 31 Регистрация: 30.4.2007 Репутация: нет Всего: нет |
А можно как-нибудь посчитать размер объекта, на который есть указатель??
|
|||
|
||||
Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 30 Всего: 484 |
Аналогично. Привести его к TObject и спросить у него InstanceSize.
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: WinAPI и системное программирование" | |
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |