我正在对应用进行性能分析,因为某些部分非常慢,例如,数据库咨询需要0.310秒。如果我在主线程中执行此操作,UI中断非常明显,应用程序感觉不到响应。
但是你应该打断应用程序的最长时间是多少,可接受的是什么?
我想尽可能快地制作它,但也不想迷恋并花费数小时的工作来在几毫秒内缩短时间。
答案 0 :(得分:2)
在iOS
的情况下,UI呈现为60fps,因此理想的最大时间为1/60秒,因此UI不会跳过帧。您可以从想要达到的最低fps中计算出所需的性能。
无论如何,充分利用您可以使用的所有工具,例如XCode的Time Profiler。从最慢的代码块开始并继续上升。
答案 1 :(得分:1)
但是你应该打断应用程序的最长时间是多少,可接受的是什么?
没有定义接受等级,这完全取决于您可以提供的用户体验有多好。有背景线程/ NSOperationQueue / GCD。只有当它是UI级别的操作时,才使用主线程。
答案 2 :(得分:1)
Android会显示触发器ANR
通常,如果应用程序无法响应用户输入,系统将显示ANR。例如,如果应用程序阻止UI线程上的某些I / O操作(通常是网络访问),那么系统就无法处理传入的用户输入事件。
请参阅链接ANR