Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Объем памяти, занимамый объектом класса, Объем памяти, занимамый объектом класса 
:(
    Опции темы
LexSTV
Дата 10.11.2007, 11:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 34
Регистрация: 20.3.2007

Репутация: нет
Всего: 2



Здравствуйте, уважаемые!
Подскажите пожалуйста, можно ли узнать какой объем занимает наш java-объект в куче?
документацию перерыл(по диагонали) ничего не нашел, а нужно ооочень срочно.
Заранее безмерно благодарен!
PM MAIL   Вверх
ecologist
Дата 12.11.2007, 09:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 452
Регистрация: 28.2.2007

Репутация: 2
Всего: 9



Ну вот такое есть - http://www.javapractices.com/Topic83.cjp

PM MAIL   Вверх
LexSTV
Дата 12.11.2007, 10:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 34
Регистрация: 20.3.2007

Репутация: нет
Всего: 2



Пермного благодарен, но среди этого большого куска кода мне больше понраивиласть вот эта фраза 

In addition, JDK 1.5 has added an Instrumentation interface, which includes a method named getObjectSize method. However, this method seems to be intended for tool makers. 

иначе говоря, если имплементить интерфейс Instrumentation  то узнать объем можно вызывав метод getObjectSize 

Огромное спасибо!!!

Добавлено через 4 минуты и 9 секунд
упс, все немного сложнее, разберусь, допишу....
PM MAIL   Вверх
ecologist
Дата 12.11.2007, 10:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 452
Регистрация: 28.2.2007

Репутация: 2
Всего: 9



Ну ты же не указал, для какой JDK этот вопрос smile
Да и как я понимаю - надо же имплементить еще

Это сообщение отредактировал(а) ecologist - 12.11.2007, 10:06
PM MAIL   Вверх
LexSTV
Дата 12.11.2007, 10:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 34
Регистрация: 20.3.2007

Репутация: нет
Всего: 2



jdk 1,6
PM MAIL   Вверх
LSD
Дата 12.11.2007, 18:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 210
Всего: 538



Если не лень, можешь посчитать руками исходя из спецификации:
Цитата

The amount of memory can be determined by looking at the data members of the class and all the superclasses' data members. The algorithm I use works as follows:

1. The class takes up at least 8 bytes. So, if you say new Object(); you will allocate 8 bytes on the heap.
2. Each data member takes up 4 bytes, except for long and double which take up 8 bytes. Even if the data member is a byte, it will still take up 4 bytes! In addition, the amount of memory used is increased in 8 byte blocks. So, if you have a class that contains one byte it will take up 8 bytes for the class and 8 bytes for the data, totalling 16 bytes (groan!).
3. Arrays are a bit more clever, at least smaller primitives get packed. I'll deal with these later.


Добавлено через 1 минуту и 25 секунд
Единственное но, возможно, что в 64-х битных JVM выравнивание будет по границе в 8 байт, а не 4.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0515 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.