美文网首页iOS 的那些事儿
Track down hangs with Xcode and

Track down hangs with Xcode and

作者: 呦释原点 | 来源:发表于2022-06-19 14:11 被阅读0次
    用Xcode 和 on-device Detection 追踪 APP挂起
    什么是hangs?

    短时间无反应,大于250毫秒没反应。
    主线程忙,或者主线程等待其他线程或系统资源, 导致APP反应慢。

    检测挂起的新增时期

    在iOS16和Xcode14以前,MetrickKit可以在beta App和public App阶段收集挂起率和诊断报告,Xcode Organizer可以在public App阶段提供挂起的统计数据。

    在iOS16和Xcode14以后,在APP开发、beta测试和已发布时期都可以获取挂起信息。

    1. 在开发阶阶段Xcode新增Thread Performance Checker功能,Instrument工具的Time Profiler新增hangs信息
    2. 在beta测试阶段可以使用测试机的 On-Device Hang Detection
    3. 在APP发布时期,Xcode Orgainer 新增了hangs 数据项目,可以查看线上APP hangs数据,


    在不同时期应用挂起检测
    1.APP开发调试阶段
    1. 开启Thread Performance Checke功能
      在 Edit schema -> Run -> Diagnostics 选项中开启 Thread Performance Checker


    调试APP期间,当执行的代码优先级不对的时候,即出现主线程等待子线问题时,会在Xcode问题导航器中通知出现挂起问题




    2.如果挂起时想知道其他线程在干什么,需要知道栈调用信息,可以使用Instrument的Timer Profiler, 出现挂起时Timer Profiler 会检测到Hangs并提供调用信息,三击检测项会出现不同线程CPU的使用情况



    此外Instrument还单独提供了Hang tracing工具,可以为检测和标记hangs配置一个hang阈值,检测是否存在hang行为
    2.beta版阶段

    可以在开发设备被打开 Hang Detection功能,打开位置 Settings -> Developer -> Hang Detection


    此处可以设置挂起阈值为250ms、500ms、1000ms、2000ms不同的值,出现hang时APP内会有实时的弹框提示,Hang Detection中也会保留hang日志。


    3.APP发布时期

    Xcode Organizer支持hang报告和诊断数据,每条hang数据会包含执行函数名、挂起时间、不同手机和系统版本的统计信息


    在 App Stroe Connect Rest APIS 也可以获取hangs报告信息。

    参考:
    https://developer.apple.com/videos/play/wwdc2021/10258
    https://developer.apple.com/videos/play/wwdc2022/10082/

    相关文章

      网友评论

        本文标题:Track down hangs with Xcode and

        本文链接:https://www.haomeiwen.com/subject/fydrvrtx.html