Как ускорить Restlet для Android при использовании OData?

Я пытаюсь использовать Restlet для Android для запроса источника данных OData. Однако я не впечатлен его производительностью как в эмуляторе, так и на реальном устройстве. У меня есть запросы, сделанные в оболочке AsyncTask, чтобы сделать пользовательский интерфейс отзывчивым, но для окончательного возврата объектов по-прежнему требуется более 1 минуты.

Я получаю их много в окне LogCat:

10-04 18:20:41.667: DEBUG/dalvikvm(278): GC freed 7872 objects / 523928 bytes in 279ms

Что я могу сделать, чтобы ускорить запросы?


person Daniel A. White    schedule 04.10.2010    source источник


Ответы (2)


Ознакомьтесь с odata4j — http://odata4j.org. Это альтернативная библиотека odata для java, включая клиентский API, совместимый с Android. .

Мы только что выпустили простой пример клиента для Android в версии 0.3. Этот пример демонстрирует эффективный способ синтаксического анализа/разбиения по страницам произвольной службы odata.

Наряду с подкачкой страниц (упомянутой Алексом) мы используем эффективную реализацию синтаксического анализатора xml pull для анализа полезной нагрузки odata (мы обнаружили, что активность кучи / GC являются самым большим узким местом производительности на Android).

person John Spurlock    schedule 17.10.2010

Я знаю, что это не поможет вам с производительностью библиотеки RESTlet... но:

Одна вещь, которую следует учитывать, — это использование так называемого подкачки на основе служб. Обратите внимание, что это отличается от $top и $skip (т.н. пейджинга, управляемого клиентом), потому что сервер выгружает страницы, даже если клиент не запрашивает их.

SDP особенно полезен, когда клиент выполняет нефильтрованный запрос к большому набору данных.

Таким образом, возможно, вы сможете уменьшить число 7872 до чего-то более приемлемого.

person Alex James    schedule 05.10.2010
comment
В настоящее время я использую это. Номер 7872 для меня загадка. - person Daniel A. White; 05.10.2010