使用OData时,如何加速Restlet for Android?

我试图使用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 

我该怎么做才能加快查询速度?

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

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

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

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

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

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

这样也许您可以将7872号码降低到更易于管理的数字。