Почему с помощью Jacksons ObjectMapper сбор мусора в Android выполняется так много раз?

В моем приложении для Android есть пользовательская AsyncTask для выполнения вызова отдыха для списка объектов. Я использую Jackson для преобразования своего ответа в Java и вижу около 30 вызовов сборки мусора при отображении Json через ObjectMapper.readValue (). Интересно, что если я делаю один и тот же вызов второй, третий, четвертый раз (, выбирая кнопку обновления ), будет только один вызов GC. Есть идеи, почему это происходит при первом вызове каждый раз, когда я запускаю приложение для Android?

AsyncTask.java

doInBackground() {

HttpGet request = new HttpGet(url);
HttpClientUtil.setJsonAccept(request);
HttpResponse response = httpClient.execute(request);
HttpEntity responseEntity = new BufferedHttpEntity(response.getEntity());

// Call that garbage collect 30+ times the first exectution
ArrayList<MyObject> responseCollection = mapper.readValue(responseEntity.getContent(), new TypeReference<ArrayList<MyObject>>(){});

return responseCollection;
}

Выход LogCat

07-10 11:05:13.484: D/dalvikvm(5518): GC_CONCURRENT freed 497K, 5% free 14030K/14727K, paused 3ms+4ms
07-10 11:05:13.484: D/dalvikvm(5518): GC_CONCURRENT freed 497K, 5% free 14030K/14727K, paused 3ms+4ms
07-10 11:05:13.484: D/dalvikvm(5518): GC_CONCURRENT freed 497K, 5% free 14030K/14727K, paused 3ms+4ms
...
6
задан bdon 10 July 2012 в 15:45
поделиться