如何提高Android / iOS /等使用Web服务的性能?
我们正在计划一个项目。 基本上我们有很多宁静的服务坐在我们的服务器上。 这些宁静的服务将返回XML作为数据types。
我们将在各种移动平台上构build应用程序,例如Adroid / iOS /可能的其他平台。 应用程序可能需要相当频繁地调用这些宁静的服务。
由于我们正处于规划阶段,我想知道这里有没有人对不同移动平台的性能有所了解。 例如,在移动平台上,我们假设我们需要以非常有效的方式返回数据。 我们可以针对特定移动平台以不同方式压缩数 或者在享受宁静服务时需要关注这些移动平台的其他可能差异?
使用JSON数据格式。
在服务器上生成速度更快,通过networking传输速度更快,并且可以更快地parsing和使用设备。
我不会太担心这个事情。 试着保持你的数据结构合理高效,如果遇到可测量的问题,那么你可以在那个时候进行优化。 整体性能应该在不同的平台上相似。
看到这个Android 的性能devise文章。 它提供了一个很好的概述。
当创build这样的系统时,很容易理解最大限度地在服务器上完成的工作,以便尽量减less每个客户端设备上的工作量。 这不一定是正确的路要走。
一般来说,智能手机比程序员倾向于给他们带来的function更强大,而且就像大部分时间都呆在那里的个人电脑一样 – 他们的处理能力可能被利用不足。 只要你的代码基本上健全,智能手机可以快速parsing大量的XML(取决于你的“大”的想法,当然,例如,我从个人经验中知道,一个蹩脚的3岁黑莓手机可以在几秒钟内parsing一个5 MB的XML文档,但你可能认为5 MB是小的)。
如果你在服务器上做了额外的工作,为了减轻设备上的工作负担,你可能会在服务器功率不足的情况下过载服务器。 压缩从您的Web服务返回的数据是有意义的,以减less正在传输的内容的总体大小,但是这意味着不会首先使用XML。
最糟糕的问题是有效载荷本身:XML太臃肿。 每个非空标签需要2 * N + 5个字符。 这是parsing和传输的痛苦。 更好的是一个JSON有效载荷。 如果您无法更改生产者,请创build一个façade进行转换。