Я создал класс, который имеет ~ 12 статических членов и 2 массива с ~ 1500 сохраненными целыми числами, так что всякий раз, когда они мне нужны во время кодирования, я вызываю класс и получаю нужный мне член.
Мне было интересно, является ли это плохая вещь ... эти статические члены остаются в памяти все время? плохо ли иметь 2 статических массива с ~ 1500 целыми числами?
Я задаю эти вопросы, потому что мое приложение использует 22 МБ ОЗУ! что много, и подумал, что это может быть причиной, так может ли этот статический класс быть причиной всего этого барана? Есть ли лучший способ справиться с этим? Спасибо.
Создайте класс со статическими членами
Ответы (5)
Если бы я хранил столько информации, я бы поместил ее в базу данных SQLite.
22 МБ ОЗУ - это слишком много, ваше приложение наверняка вылетит на устройствах с низкими версиями ОС. Я не вижу причины хранения 1500 целых чисел в памяти, вы можете попробовать сохранить их в XML и загрузить их при необходимости. Перейдите по этой ссылке, чтобы узнать, как сохранять значения в файле XML: Предоставление ресурсов < / а>
Статические члены класса находятся в памяти на протяжении всего выполнения программы, и да, они остаются в памяти все время, поэтому вы получаете к ним доступ, когда захотите. Я не могу ответить на ваш вопрос о массивах, потому что вы не публиковали много информации о своем проекте, это может быть, а может и не быть хорошей идеей в зависимости от того, что вам нужно делать.
Омар,
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.
Лучший способ - хранить всю эту информацию в БД и извлекать соответствующие данные, когда захотите. Более того, используйте статические члены только тогда, когда они вам нужны (например, использование константы), что является хорошей практикой.
2 массива из 1500 целых чисел, не занимают до 22 МБ. В вашем приложении что-то не так. Такой массив займет менее 50 КБ, поэтому 2 массива должны быть около 100 КБ. Так каковы другие статические члены?