Обновление:
g c будет работать только после финала}, что означает, что только после полного выполнения l oop сборка мусора g c будет запущена один раз. Итак, есть ли какой-нибудь программный паттерн, который можно использовать здесь? вроде как для l oop, но в то же время также позволяют g c запускать каждую итерацию. Я не знаю, дал ли я ясно понять ... Я могу жить с падением производительности, вызванным g c, выполняющим каждую итерацию.
Я использовал залп в проекте android, и я Я не могу получить рабочее решение.
В основном у меня есть огромная коллекция материалов, которые я буду отправлять (через http с помощью volley lib) непрерывно. когда я отправляю 10 из них, это не проблема, но если я делаю это непрерывно, это в конечном итоге израсходует всю память, и приложение будет остановлено из-за занимаемого им места.
ниже приведен блок демонстрационного кода
requestqueue = Common.getQueue();//it will get a normal requestqueue
for (int i = 0; i < waitinglist.size(); i++) {
synccopyreq.filedatas.add(Common.getDataFromWaitinglist(i));
Common.httpPostWithQueue( requestqueue,"tagfullcopy", httpEndPoint+"/sync/fullcopy", gson.toJson(synccopyreq), that, new Common.CallbackInterface() {
@Override
public void completed(String result)
{
Log.i("shawhu","ok done");
}
});
//this was added but it doesn't work unfortunately
//using System.gc() like so was not recommended and most of the time wont'be effective either, I knew that.
System.gc();
}
Пожалуйста, прочитайте это, я попробовал профилировщик, когда все завершится (например, при работе с 10 элементами), использование памяти будет go нормально снижаться, но если я продолжу его непрерывно, оно не будет. использование памяти просто go постоянно увеличивается, и это в конечном итоге приведет к поломке приложения (прекращается системой android). Как освободить память на каждой итерации в l oop?
Пожалуйста, помогите мне, спасибо !!