2011-02-07 49 views
1

我們正在計劃一個項目。基本上我們有很多坐在我們服務器上的寧靜服務。這些寧靜的服務將返回XML作爲數據類型。如何提高Android/iOS /等使用Web服務的性能?

我們將在各種移動平臺上構建應用程序,例如Adroid/iOS /可能的其他平臺。應用程序可能需要頻繁地調用那些寧靜的服務。

由於我們處於規劃階段,我想知道這裏有沒有人對不同的移動平臺的性能有所瞭解。例如,在移動平臺上,我們假設我們需要以非常有效的方式返回數據。我們可以針對特定移動平臺以不同方式壓縮數或者在享受寧靜服務時需要關注這些移動平臺的其他可能差異?

回答

0

我不會太擔心這個提前。試着保持數據結構合理高效,如果遇到可衡量的問題,那麼可以在當時進行優化。整個性能應該在不同的平臺上類似。

請參閱此Android文章designing for performance。它提供了一個很好的概述。

0

當創建這樣的系統時,很容易理解最大限度地完成服務器上完成的工作,以便儘量減少每個客戶端設備必須完成的工作量。這不一定是正確的路要走。

一般來說,智能手機比程序員傾向於給他們帶來的功能更強大,而且 - 像大部分時間都呆在那裏的個人電腦 - 他們的處理能力可能被利用不足。只要你以一種基本理智的方式進行編碼,智能手機可以快速解析大量的XML(當然,這取決於你的「大」的想法 - 例如,我從個人經驗中知道,一個蹩腳的3歲黑莓手機可以只需幾秒鐘即可解析5 MB XML文檔,但您可能認爲5 MB很小)。

如果您爲了減輕設備上的工作量而在服務器上做額外工作的路上走得太遠,最好在利用設備功耗的同時過載服務器。壓縮從Web服務返回的數據以減少正在傳輸內容的整體大小確實是有意義的,但是那樣會建議不首先使用XML。

0

最糟糕的問題是有效負載本身:XML太臃腫。每個非空標籤需要2 * N + 5個字符。這是解析和傳輸的痛苦。更好的是JSON有效載荷。如果您無法更改生產者,請創建一個façade進行轉換。

1

使用JSON數據格式。

它在您的服務器上生成速度更快,通過網絡傳輸速度更快,並且可以更快地解析和使用設備。