Re: Выделение памяти под динамические и статические члены
От: DK3981 Россия  
Дата: 01.10.04 10:48
Оценка:
Здравствуйте, Donz, Вы писали:

D>Пишу на J2ME. Сейчас встал вопрос оптимизации. Конкретно — есть класс, для приложения нужен только один объект этого класса. Есть ли смысл все его члены обяъвить статическими?

D>Как вообще происходит загрузка классов и их членов в память (для динамики и статики), где об этом можно почитать?

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

При таком описании проблемы я бы попробовал использовать шаблон Singleton, хотя если можно точно определить точку, когда использование класса больше не является необходимым, то можно и просто за'null'ить все статические поля.
Так как код класса будет всё время висеть в памяти, то относительная разница между этими двумя вариантами будет, скорее весего, незначительной, но использование singleton'а делает обращение к нужным полям более явным.

Хотя есть встречный вопрос — если данный класс используется один раз и только при старте приложения, то действительно ли он нужен?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.