Моя программа тормозит, потому что использует много тяжеловесных данных, а программа получает свободной памяти из озу только по 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++; 
} 
} 

Ответы (0 шт):