Когда я синхронизирую между сервером sql и sqlite, я получаю эту ошибку "GC_FOR_MALLOC" - PullRequest
0 голосов
/ 05 августа 2011

Я хочу синхронизацию с SQL Server 2008 & sqlite. Кодирование в порядке. Все идеально. Но после начала загрузки, после нескольких записей, вставленных или обновленных в таблице, произойдет ошибка. & Экран перейдет на начальный экран ..

      08-05 09:34:40.798: DEBUG/dalvikvm(278): GC_FOR_MALLOC freed 5159 objects / 408216 bytes in 64ms
08-05 09:34:40.898: DEBUG/dalvikvm(278): GC_FOR_MALLOC freed 480 objects / 52832 bytes in 60ms
08-05 09:34:40.908: INFO/dalvikvm-heap(278): Grow heap (frag case) to 3.162MB for 130576-byte allocation
08-05 09:34:40.998: DEBUG/dalvikvm(278): GC_FOR_MALLOC freed 14 objects / 65568 bytes in 84ms
08-05 09:34:41.138: DEBUG/dalvikvm(278): GC_FOR_MALLOC freed 2 objects / 48 bytes in 81ms
08-05 09:34:41.138: INFO/dalvikvm-heap(278): Grow heap (frag case) to 3.349MB for 261648-byte allocation
08-05 09:34:41.308: DEBUG/dalvikvm(278): GC_FOR_MALLOC freed 1 objects / 130584 bytes in 159ms
08-05 09:34:41.438: DEBUG/dalvikvm(278): GC_FOR_MALLOC freed 2 objects / 48 bytes in 72ms
08-05 09:34:41.448: INFO/dalvikvm-heap(278): Grow heap (frag case) to 3.724MB for 523792-byte allocation
08-05 09:34:41.688: DEBUG/dalvikvm(278): GC_FOR_MALLOC freed 1 objects / 261656 bytes in 230ms
08-05 09:34:41.798: DEBUG/dalvikvm(278): GC_FOR_MALLOC freed 20 objects / 984 bytes in 90ms
08-05 09:34:41.808: INFO/dalvikvm-heap(278): Grow heap (frag case) to 4.000MB for 220664-byte allocation
08-05 09:34:41.878: DEBUG/dalvikvm(278): GC_FOR_MALLOC freed 0 objects / 0 bytes in 73ms
08-05 09:34:41.988: DEBUG/dalvikvm(278): GC_FOR_MALLOC freed 0 objects / 0 bytes in 102ms
08-05 09:34:41.988: INFO/dalvikvm-heap(278): Grow heap (frag case) to 4.420MB for 441312-byte allocation
08-05 09:34:42.068: DEBUG/dalvikvm(278): GC_FOR_MALLOC freed 0 objects / 0 bytes in 75ms
08-05 09:34:42.068: INFO/dalvikvm-heap(278): Grow heap (frag case) to 4.631MB for 220664-byte allocation
08-05 09:34:42.298: DEBUG/dalvikvm(278): GC_FOR_MALLOC freed 1 objects / 220672 bytes in 227ms
08-05 09:34:42.448: DEBUG/dalvikvm(278): GC_FOR_MALLOC freed 2 objects / 220720 bytes in 149ms
08-05 09:34:42.758: INFO/dalvikvm-heap(278): Grow heap (frag case) to 5.052MB for 882608-byte allocation
08-05 09:34:42.908: DEBUG/dalvikvm(278): GC_FOR_MALLOC freed 0 objects / 0 bytes in 147ms
08-05 09:34:43.058: DEBUG/dalvikvm(278): GC_FOR_MALLOC freed 0 objects / 0 bytes in 153ms
08-05 09:34:43.068: INFO/dalvikvm-heap(278): Grow heap (frag case) to 5.473MB for 441312-byte allocation
08-05 09:34:43.168: DEBUG/dalvikvm(278): GC_FOR_MALLOC freed 7 objects / 882832 bytes in 91ms
08-05 09:34:44.008: DEBUG/dalvikvm(278): GC_FOR_MALLOC freed 45 objects / 467072 bytes in 67ms
08-05 09:34:44.658: DEBUG/dalvikvm(278): GC_FOR_MALLOC freed 11 objects / 363568 bytes in 69ms
08-05 09:34:45.188: DEBUG/dalvikvm(278): GC_FOR_MALLOC freed 9 objects / 277048 bytes in 68ms
08-05 09:34:45.848: DEBUG/dalvikvm(278): GC_FOR_MALLOC freed 11 objects / 369384 bytes in 68ms
08-05 09:34:46.758: DEBUG/dalvikvm(278): GC_FOR_MALLOC freed 13 objects / 492464 bytes in 77ms
08-05 09:34:46.758: INFO/dalvikvm-heap(278): Grow heap (frag case) to 6.116MB for 874544-byte allocation
08-05 09:34:46.928: DEBUG/dalvikvm(278): GC_FOR_MALLOC freed 1 objects / 655912 bytes in 156ms
08-05 09:34:47.218: DEBUG/dalvikvm(278): GC_FOR_MALLOC freed 4668 objects / 2800512 bytes in 68ms
08-05 09:34:47.578: DEBUG/dalvikvm(278): GC_FOR_MALLOC freed 6108 objects / 209152 bytes in 87ms
08-05 09:34:47.948: DEBUG/dalvikvm(278): GC_FOR_MALLOC freed 6592 objects / 224560 bytes in 94ms
08-05 09:34:48.408: DEBUG/dalvikvm(278): GC_FOR_MALLOC freed 7866 objects / 269816 bytes in 106ms
08-05 09:35:30.348: DEBUG/dalvikvm(278): GC_FOR_MALLOC freed 8182 objects / 346272 bytes in 125ms
08-05 09:36:43.779: INFO/ActivityManager(58): Process android.process.acore (pid 160) has died.
08-05 09:36:43.918: DEBUG/dalvikvm(278): GC_FOR_MALLOC freed 14265 objects / 696136 bytes in 174ms
08-05 09:38:00.298: DEBUG/dalvikvm(278): GC_FOR_MALLOC freed 20285 objects / 995336 bytes in 233ms
08-05 09:38:00.298: ERROR/dalvikvm(278): HeapWorker is wedged: 78178ms spent inside Lcom/android/internal/os/BinderInternal$GcWatcher;.finalize()V

В кодировке я использовал таблицу String & stringBuffer.some, содержащую 1000 записей или более .....

Я запускаю это на эмуляторе. Размер кучи составляет 200 МБ, который я установил. Память телефона показывает 21 МБ (внутренняя память) ...

Я также прочитал эту ссылку Что означают GC_FOR_MALLOC, GC_EXPLICIT и другие GC_ * в Android Logcat? .

В моем коде я использую System.out.println () также для целей тестирования. То, что также isuess и logcat показывает много сообщений, это тоже проблема производительности? Какое решение для этого? Пожалуйста, помогите мне в этом ..

Заранее спасибо

1 Ответ

0 голосов
/ 05 августа 2011

Хм, ГХ обычно выполняется только тогда, когда в этом есть необходимость. Попробуйте отладить код, чтобы увидеть, что может использовать столько памяти. В кучи не должно быть достаточно памяти для выполнения выделения.

Любопытно, вы используете сокеты для этого типа приложений? Я слышал, где интерфейсное приложение, написанное на Android в Java, подключается через сокет к внутреннему серверу (не «Сервис», в терминах Android), написанному на C. Во время стресс-тестирования сервер был убит, чтобы увидеть как приложение будет реагировать. Когда это произошло, устройство залило журнал с такой ошибкой. Это произошло потому, что существовал отдельный поток, который запускался после подключения, и он отправлял запрос данных, ожидая получить что-то обратно от сервера, которого больше не было.

Возможно, ваше приложение или веб-сервер считают, что оно все еще подключено, запущен процесс, который пытается отправить / получить данные, или что-то подобное.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...