1

我正在尝试使用 Restlet for Android 来查询 OData 数据源。但是,我对它在模拟器和真实设备上的性能印象不深。我在包装器AsyncTask中提出了使 UI 响应的请求,但最终返回对象仍需要 1 分钟多的时间。

我在 LogCat 窗口中得到了很多:

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

我能做些什么来加快查询速度?

4

2 回答 2

4

查看 odata4j - http://odata4j.org 这是用于 java 的替代 odata 库,包括与 android 兼容的客户端 api。

我们刚刚在 0.3 版本中发布了一个简单的 android 客户端示例。此示例演示了一种解析/分页任意 odata 服务的有效方法。

除了服务驱动的分页(Alex 提到),我们使用高效的 xml pull 解析器实现来解析 odata 负载(我们发现堆活动/GC 是 android 上最大的性能瓶颈)。

于 2010-10-17T21:27:32.627 回答
0

我知道这对 RESTlet 库的性能没有帮助......但是:

要考虑的一件事是使用称为服务驱动分页的东西。请注意,这与 $top 和 $skip (也称为客户端驱动的分页)不同,因为即使客户端不要求,服务器也会分页。

当客户端对大型数据集执行未经过滤的查询时,SDP 特别有用。

这样,也许您可​​以将 7872 的数字降低到更易于管理的水平。

于 2010-10-05T15:20:13.070 回答