Моя программа тормозит, потому что использует много тяжеловесных данных, а программа получает свободной памяти из озу только по 25мб
У меня есть программа написанная на java на андроиде. В этой программе запускается процедура main() в фоновом потоке, которая представляет из себя цикл в котором выделяется память под объекты некоторого массива (массив у меня большой!). Все работает хорошо, одна только проблема. Java выделяет для программы 25мб озу, если нужно еще, она еще выделяет 25мб и т.д., при этом, при выделении памяти, программа притормаживает на 2-3 сек. В скором времени, мои данные становятся увесистыми, и программе нужно много раз получить по 25 мб, из-за чего она надолго замирает(на много минут). Как мне установить в программу, чтоб она «хватала» памяти не по 25мб, а, скажем, по 100мб? Свободного озу у моего телефона 1гб. Код программы:
private void main () {
Position[] Pos = new Position[10000000]; int z = 0;
int xx = 1;
while (xx <= 4000) {
if (xx >= 3200) { setTextR(xx + "-" + Runtime.getRuntime().freeMemory() + " ");
}
int i = 1;
while (i <= xx) {
Position p = new Position();
p.questions = new NodeList();
p.vars = new LinkedList<Var>();
Pos[z] = p;
i++;
z++;
}
xx++;
}
}