Создайте класс со статическими членами

Я создал класс, который имеет ~ 12 статических членов и 2 массива с ~ 1500 сохраненными целыми числами, так что всякий раз, когда они мне нужны во время кодирования, я вызываю класс и получаю нужный мне член.
Мне было интересно, является ли это плохая вещь ... эти статические члены остаются в памяти все время? плохо ли иметь 2 статических массива с ~ 1500 целыми числами?
Я задаю эти вопросы, потому что мое приложение использует 22 МБ ОЗУ! что много, и подумал, что это может быть причиной, так может ли этот статический класс быть причиной всего этого барана? Есть ли лучший способ справиться с этим? Спасибо.


person Omar    schedule 08.06.2011    source источник
comment
Особенно в Android вам следует избегать статических полей. По сути, это глобальное состояние.   -  person Matt Ball    schedule 08.06.2011
comment
Что представляют собой эти 2 массива с 1500 целыми числами? (Вероятно, они не являются причиной того, почему ваше приложение занимает 22 МБ, но они влияют на размер)   -  person Kaj    schedule 08.06.2011


Ответы (5)


Если бы я хранил столько информации, я бы поместил ее в базу данных SQLite.

person Ben Williams    schedule 08.06.2011

22 МБ ОЗУ - это слишком много, ваше приложение наверняка вылетит на устройствах с низкими версиями ОС. Я не вижу причины хранения 1500 целых чисел в памяти, вы можете попробовать сохранить их в XML и загрузить их при необходимости. Перейдите по этой ссылке, чтобы узнать, как сохранять значения в файле XML: Предоставление ресурсов < / а>

person Egor    schedule 08.06.2011

Статические члены класса находятся в памяти на протяжении всего выполнения программы, и да, они остаются в памяти все время, поэтому вы получаете к ним доступ, когда захотите. Я не могу ответить на ваш вопрос о массивах, потому что вы не публиковали много информации о своем проекте, это может быть, а может и не быть хорошей идеей в зависимости от того, что вам нужно делать.

person Hunter McMillen    schedule 08.06.2011

Омар,

 First of all. Why do you have to use array with 1500 integers in it when clearly you have better techniques to store data. Like Egor mentioned, you can use XML as well, but then, you have to choose the right technology in that as well since DOM will load everything in memory and you'll end up in the same situation.

Лучший способ - хранить всю эту информацию в БД и извлекать соответствующие данные, когда захотите. Более того, используйте статические члены только тогда, когда они вам нужны (например, использование константы), что является хорошей практикой.

person Vishwas Shashidhar    schedule 08.06.2011

2 массива из 1500 целых чисел, не занимают до 22 МБ. В вашем приложении что-то не так. Такой массив займет менее 50 КБ, поэтому 2 массива должны быть около 100 КБ. Так каковы другие статические члены?

person Azlam    schedule 08.06.2011