2014-03-25 28 views
2

在性能视图上,JSON解析需要花费大量时间来检索数据。在我的应用程序中,我需要从Server获得近10,000条记录。在模拟器中,它立即获取数据并高效工作。但在我的android手机中,需要超过2分钟来检索所有数据。好的,给我一个改善手机性能的建议。给我一个提高我的应用程序性能的建议,从服务器检索大量数据(近10,000多条记录)?

+0

看来你正在UI /主线程中进行文件/网络/解析操作。不要这样做。这将需要一分钟,用户界面冻结。 – Geros

+0

如果互联网(CDMA或LTE或Wifi等)很低,那就非常困难。使用ASinktask或Thread和查看进度条。 – Amadas

+0

我尝试使用AsyncTask.I动态创建视图。在向UI发布数据时,它开始出现问题。 –

回答

0

我想你可以使用GSON解析复杂的JSON响应。请查看这些教程http://www.javacodegeeks.com/2011/01/android-json-parsing-gson-tutorial.html

您只需创建模型类并使用适当的注释,然后将数据解析为直接为对象建模。

+0

交互我已经使用带注释的模型类,这里的问题是JSON解析检索大量数据。 –

+0

为什么使用gson解析更快? – peterh

+0

@PeterHorvath:从可用性的角度来看,看看基准测试代码,并比较Gson所需的代码与Jackson所需的代码: Gson: https://github.com/eishay/jvm-串行器/斑点/ 0e353b5e90799b328f21664b730598dfd9618beb/TPC/SRC /串行化器/ Gson.java 杰克逊: https://github.com/eishay/jvm-serializers/blob/0e353b5e90799b328f21664b730598dfd9618beb/tpc/src/serializers/JsonJacksonManual.java 的Gson团队致力于提高性能,每个版本 ,我现在对最后两个版本 (2.2.3和2.2.4)中的结果感到满意。 –

0

问题是,是什么导致了这种放缓。因为一切都像魅力一样进入模拟器,它可能是网络速度。如果你找到一个压缩JSON数据的解决方案,你可以提供帮助。

这是一个文字,有很多重复,它是非常非常好的可压缩。而http支持压缩。

你需要在你的http服务器中设置它。

如果你觉得这是一个有希望的方向,我建议提出一个新的问题,给你的http服务器版本。祝你好运!

1

模拟器可以访问您的主机资源,因此不是测试性能的好方法。

我使用了带有大型数据集的流式JSON解析器,效果很好。但是,我在后台运行此进程,并且能够接受长取/分析时间。根据数据大小和设备运行速度的不同,2分钟对我来说似乎并不是特别长。

也许你可以首先获取更小的数据子集,然后在后台获取剩余的数据时显示它。为了提高性能,您可能需要进行一些类似的优化。

+0

thx .. mikejonesguy。 –

+0

我会尽力去做。并在 –

+0

之后回复你模拟器在仿真的arm cpu上运行jvm。在大多数配置中,我认为它不像一个真正的android设备那么快。 – peterh

相关问题