• Instruments中常用Template的使用


     Instruments是苹果提供的Xcode套件,可用于分析iOS,MacOS程序的性能数据,进行性能提升。Instruments提供了很多类型的Template,用于特定场景的分析。这里选了3种常用的Template进行使用方法的讲解,对于其他Template的用法则用到时再了解吧,没必要一次把所有的类型都学习一遍。
    讲解的Template有:
    1.Time Profiler
    2.Allocations
    3.Leaks
     
    Time耗时分析
    在时间轴中拖拽两个begin-end线,分享这2根线之间的方法调用。
     
    详情面板设置
    Call Tree设置
    通常筛选常见开启的配置方式:
    1
    2
    3
    4
    5
    6
    7
    Separate by Thread:按线程分割
    Invert Call Tree:倒置调用栈
    Hide System Libraries:隐藏系统库
    其他按需开启
    Separate by State:按状态分割
    Flatten Recursion:平铺递归
    Top Fuctions:顶部方法,没看出有啥作用。
    单击Profile详情面板中的使用每行符号右侧的箭头,进入到当前方法内的详细调用和时间占用。
    Heavlest Stack Trace操作
    双击右侧Heavlest Stack Trace下的调用符号,进入到源码中方法调用的位置。

     

    Allocations内存使用分析
     

    概念解释

    all-heap-allocations:所有堆内存分配
    all-anonymous-VM:所有的虚拟内存分配
    堆分配和虚拟内存分配是两回事
    当应用程序启动时,操作系统为其分配一块虚拟内存块。当应用程序分配内存时,操作系统会从已经预留好的虚拟内存块中分配内存
    应用程序不能控制匿名虚拟内存的大小,但可以通过优化堆分配来减少内存使用。

    1
    2
    3
    4
    5
    6
    # Persistent: 当前内存中正在存活的对象个数
    # Transient: 在内存中使用完成后,已经被销毁的对象个数
    # Total: 当前存活的+已经销毁的 总个数
    Persistent: 当前内存中正在存活的对象所占用的内存大小
    Total Bytes: 当前存活的+已经销毁的 对象所使用的内存总大小
    Persistent / Total Bytes: 当前存活的与创建对象总数的比值
     
    点击Category 下某个item的右箭头,可以查看当前类的所有被创建对象的时间和大小

     

    Leaks内存泄漏分析
     
    红X表示有内存泄漏,点击红X查看内存泄漏。
    在Leads详情面板,选择Call Tree可以查看方法调用栈。
    Call Tree设置
    1
    2
    3
    Separate by Thread:按线程分割
    Invert Call Tree:倒置调用栈
    Hide System Libraries:隐藏系统库
    通过Filter筛选工具筛选当前操作的类名,查看出现内存泄漏的方法,点击右侧箭头,进入到当前调用方法内详细查看
    双击右侧Heavlest Stack Trace下的调用符号,进入到源码中方法调用的位置。



    参考文章
    https://juejin.cn/post/6865102561507672077
    http://www.samirchen.com/use-instruments/
  • 相关阅读:
    网络工程师知识点2
    java基础--transient关键字减少序列化
    微信小程序写一个录音机
    httpClient源码如何下载呢?
    Visual Paradigm 如何在大型项目中实现最佳性能
    软件项目管理
    基于java web的网上招标系统
    elasticsearch命令大全
    分享一个基于uniapp+springboot技术开发的校园失物招领小程序(源码、lw、调试)
    【16-配置中心之Nacos的基本使用&Nacos服务之命令空间、Nacos服务之配置组、Nacos服务之配置拆分】
  • 原文地址:https://www.cnblogs.com/zhou--fei/p/17491580.html