在性能视图上,JSON解析需要花费大量时间来检索数据。在我的应用程序中,我需要从Server获得近10,000条记录。在模拟器中,它立即获取数据并高效工作。但在我的android手机中,需要超过2分钟来检索所有数据。好的,给我一个改善手机性能的建议。给我一个提高我的应用程序性能的建议,从服务器检索大量数据(近10,000多条记录)?
回答
我想你可以使用GSON解析复杂的JSON响应。请查看这些教程http://www.javacodegeeks.com/2011/01/android-json-parsing-gson-tutorial.html
您只需创建模型类并使用适当的注释,然后将数据解析为直接为对象建模。
交互我已经使用带注释的模型类,这里的问题是JSON解析检索大量数据。 –
为什么使用gson解析更快? – peterh
@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)中的结果感到满意。 –
问题是,是什么导致了这种放缓。因为一切都像魅力一样进入模拟器,它可能是网络速度。如果你找到一个压缩JSON数据的解决方案,你可以提供帮助。
这是一个文字,有很多重复,它是非常非常好的可压缩。而http支持压缩。
你需要在你的http服务器中设置它。
如果你觉得这是一个有希望的方向,我建议提出一个新的问题,给你的http服务器版本。祝你好运!
模拟器可以访问您的主机资源,因此不是测试性能的好方法。
我使用了带有大型数据集的流式JSON解析器,效果很好。但是,我在后台运行此进程,并且能够接受长取/分析时间。根据数据大小和设备运行速度的不同,2分钟对我来说似乎并不是特别长。
也许你可以首先获取更小的数据子集,然后在后台获取剩余的数据时显示它。为了提高性能,您可能需要进行一些类似的优化。
thx .. mikejonesguy。 –
我会尽力去做。并在 –
之后回复你模拟器在仿真的arm cpu上运行jvm。在大多数配置中,我认为它不像一个真正的android设备那么快。 – peterh
- 1. 在从mysql中检索一千条记录时提高性能
- 2. 提高大量行的性能(1,000,000条记录)
- 3. 如何提高从数据库中检索大量数据的时间性能?
- 4. 从Android应用程序的Web服务器检索数据
- 5. 我的应用程序或服务器的最大负载量
- 6. 如何从服务器到我的煎茶触摸2个应用程序检索的记录的索引,然后检索一个完整的模型实例
- 7. 从j2me中将数据从服务器提取到我的应用程序
- 8. 我的android应用程序不geting从服务器json数据
- 9. 根据此服务器日志,建议如何优化我的应用程序?
- 10. 建议GWT高级应用服务器
- 11. 如何提高我的Web应用程序的性能?
- 12. 试图提高我的GAE应用程序的性能
- 13. FastCGI将如何提高我的PHP应用程序的性能?
- 14. 如何提高我的Ionic3 Anguar4应用程序的性能?
- 15. 如何在Solr中使用elevate.xml提升最高10,000条记录?
- 16. 如何将数据提供给我的Windows 8应用程序的Web服务?
- 17. 大多数android应用程序如何从数据库服务器中检索数据?
- 18. 从远程服务器检索数据
- 19. 从我的Android应用程序中的Wordpress中检索数据
- 20. 建议从我的程序
- 21. 在我的iPad应用程序中给我建议
- 22. 我需要使用多个LDAP提供程序。我如何检查LDAP服务器的可用性?
- 23. 从我的iPhone应用程序上传一个mp3到我的服务器
- 24. 如何从我的服务配置中提高性能?
- 25. 提高ASP.NET应用程序的性能
- 26. 提高Windows应用程序的性能
- 27. 提高Web应用程序的性能
- 28. 提高网络服务器的性能
- 29. Javascript无法从我的服务器检索数据
- 30. 从数据库检索大量的记录
看来你正在UI /主线程中进行文件/网络/解析操作。不要这样做。这将需要一分钟,用户界面冻结。 – Geros
如果互联网(CDMA或LTE或Wifi等)很低,那就非常困难。使用ASinktask或Thread和查看进度条。 – Amadas
我尝试使用AsyncTask.I动态创建视图。在向UI发布数据时,它开始出现问题。 –