繁体   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