我开发了一个在iPhone-3GS,iPhone-4,iPhone-4S上工作的应用程序。
启动过程中,iPhone4s需要30秒,iPhone-3GS需要50-55秒。在同一网络上进行测试。(这不是一个与网络或互联网有关的问题;在模拟器中只花了5秒.)
在这个启动过程中,应用程序执行几个操作,如从数据库删除旧数据、WebService调用和将响应数据插入数据库。应用程序使用方法(顺序)在主线程上调用几乎8个web服务。
我使用SQLite和编译的查询结构进行插入。我想提高应用程序的性能,并希望减少应用程序所占用的启动时间。
Android团队使用相同的后端,他们也在做同样的事情。在Galaxy上只需20秒,(Team正在使用对象关系模式与Sqlite通信)。
这就是提高性能的原因吗?
是否有与Java中的ORM相同的对象-C来提高性能,同时处理Sqlite (处理器特有的,更少的时间消耗)?
发布于 2012-10-29 13:11:38
首先,您不应该在主线程上执行网络操作(web服务调用)。这应该在后台线程上完成。我对直接使用SQLite还不太了解,但是使用CoreData,您可以在后台线程上进行“数据库”更新,只需使用主线程来合并两个ManagedObjectContexts。
我设想将WS调用迁移到后台线程(AFNetworking是一个很好的框架,顺便说一句),您将看到很多改进。
我举的一个例子是一个基于web服务的应用程序,它从一个Server中获取7000条记录,并创建一个NSArray (数据以JSON形式进入),这个过程需要7-10秒。通过同时执行自动身份验证过程,我进一步减少了对用户的影响。
30秒太长了,不能让用户等待某件事情。
发布于 2015-01-03 15:32:22
14最好的提示可在这里获得提高iOS应用程序性能的最佳步骤
在本教程中,第13点给出了您所需的信息。
https://stackoverflow.com/questions/13122249
复制相似问题