Есть класс с членами Static - PullRequest
1 голос
/ 08 июня 2011

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

Ответы [ 5 ]

2 голосов
/ 08 июня 2011

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

2 голосов
/ 08 июня 2011

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

1 голос
/ 08 июня 2011

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

0 голосов
/ 08 июня 2011

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

0 голосов
/ 08 июня 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.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...