【问题标题】:What's the maximum amount of time that the UI should be interrupted?UI 应该被中断的最长时间是多少?
【发布时间】:2015-12-03 11:55:09
【问题描述】:

我正在对应用程序进行性能分析,因为某些部分非常慢,例如数据库查询需要 0.310 秒。如果我在主线程中执行此操作,则 UI 中断非常明显,应用程序感觉没有响应。

但是你应该中断应用程序的最长时间是多少,什么是可以接受的?

我想让它尽可能快,但也不想着迷并花费数小时的工作来将时间缩短到几毫秒。

【问题讨论】:

标签: android ios performance user-interface


【解决方案1】:

iOS 的情况下,UI 以 60fps 的速度呈现,因此理想的最长时间为 1/60 秒,这样 UI 就不会跳过一帧。您可以从您想要达到的最低 fps 计算出您需要的性能。

无论如何,请充分利用所有可用的工具,例如 XCode 的 Time Profiler。等等。从最慢的代码块开始,然后继续往上走。

【讨论】:

    【解决方案2】:

    但是你应该中断应用程序的最长时间是多少,什么是可以接受的?

    0

    没有这样定义的接受程度,这完全取决于您可以提供的用户体验有多好。有后台线程/NSOperationQueue/GCD。仅当它是 UI 级别的操作时,才使用主线程。

    【讨论】:

      【解决方案3】:

      在安卓中

      Android 会显示触发器 ANR

      通常,如果应用程序无法响应用户输入,系统会显示 ANR。例如,如果应用程序阻塞了 UI 线程上的某些 I/O 操作(通常是网络访问),因此系统无法处理传入的用户输入事件。

      见链接ANR

      在 5 秒内对输入事件(如按键或屏幕触摸事件)无响应,将弹出 ANR 对话框。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-04-27
        • 1970-01-01
        • 2015-06-10
        • 2011-09-30
        • 2013-06-12
        • 1970-01-01
        • 2012-07-19
        • 2016-05-03
        相关资源
        最近更新 更多