簡體   English   中英

Google Cloud Endpoints中的JSON解析速度非常慢

[英]JSON parsing very slow in Google Cloud Endpoints

Google Cloud Endpoints建議使用GsonFactory或JacksonFactory進行JSON解析。

我發現從我的端點解析幾個1000個Java對象(每個對象只有幾個long和string字段以及一個GeoPt字段)需要很長時間,在Galaxy Note 2上大約需要15秒。

根據Google的建議,我使用:

myBuilder = new MyDbEndpoint.Builder(
                AndroidHttp.newCompatibleTransport(),
                new GsonFactory(),
                credential);
myEndpoint = myBuilder.build();

...

List<myDb> beings = myEndpoint.myDBEndpoint().someMethod().execute().getItems();

我在JacksonFactory()上獲得了相同的性能。

我進行了一些分析,發現所有時間都花在了JSON解析上。

除了“分頁”我的數據獲取之外,有人可以在這里提出任何加快速度的建議嗎?

謝謝。

令您驚訝的是,您發現這些實現之間的速度沒有差異-我認為傑克遜應該更快。

拋開這些,我真的不會期望整個工作方式很快。 作為具有C / C ++背景的人,Google / GAE / Endpoints交流數據的方式一直令我感到瘋狂,效率低下-將二進制數據轉換為文本,然后將其嵌入結構化的文本表示形式,然后進行所有解析另一端的數據(例如,與struct的數據相比)。

現在,如果您只是來回發送一些對象,那實際上並不重要,但是您正在談論解析幾千個對象。

但是您不會因為使用Java而陷入效率低下的方法中。 Java還支持NIO(我認為GAE也支持NIO),Google還創建了協議緩沖區,該協議的緩沖區要比JSON / XML高效得多,同時仍保持語言中立。 https://developers.google.com/protocol-buffers/docs/overview

因此,如果解析“幾個1000個Java對象”對於您的應用程序來說是正常的,我建議您考慮為對象使用不同的表示形式。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM