gpt4 book ai didi

iphone - 如何提高 iOS 应用程序的性能?

转载 作者:行者123 更新时间:2023-11-28 20:28:42 25 4
gpt4 key购买 nike

我开发了一个适用于 iPhone-3GS、iPhone-4、iPhone-4S 的应用程序。

对于启动过程,iPhone-4s 需要 30 秒,而 iPhone-3gs 需要 50-55 秒。在同一网络上测试。(这不是与网络或互联网相关的问题;在模拟器中只用了 5 秒。)

在这个启动过程中,App 执行了几个操作,如从数据库中删除旧数据、调用 WebService 并将响应数据插入数据库。应用程序使用 performSelectorOnMainThread 方法(顺序)在主线程上调用近 8 个 Web 服务

我正在使用 SQLite 和编译查询结构进行插入。我想提高应用程序的性能并减少应用程序的启动时间。

Android 团队使用相同的后端,他们也在做同样的事情。仅在 Galaxy note 上需要 20 秒(Android 团队正在使用 Object Relational Modal 与 Sqlite 数据库通信)

这是性能更快的原因吗?

在处理 Sqlite(特定于处理器,耗时更少)时,是否有任何与 Objective-C 的 Java 中的 ORM 相同的功能来提高性能?

最佳答案

首先,您不应该在主线程上进行网络操作(网络服务调用)。这应该在后台线程上完成。我对直接使用 SQLite 知之甚少,但使用 CoreData,您可以在后台线程上进行“数据库”更新,只需使用主线程合并两个 ManagedObjectContexts

我想象将您的 WS 调用转移到后台线程(顺便说一句,AFNetworking 是一个很棒的框架),您会看到很多改进。

我举的一个例子是一个基于 Web 服务的应用程序,它从 SQL Server 数据库获取 7000 条记录并创建一个 NSArray(数据以 JSON 形式传入),该过程需要 7-10 秒。我通过同时执行自动身份验证过程进一步减少对用户的影响。

30 秒对于让用户等待 IMO 来说太长了。

关于iphone - 如何提高 iOS 应用程序的性能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13122249/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com