• Unity 内存性能分析器 (Memory Profiler)


    一、 安装

    安装有两种
    方式一:
    add package : com.unity.memoryprofiler
    方式二:
    From Packages : Unity Registry 搜索 Memory Profiler

    二、 使用

    • 打开:Windows - > Analysis - > Memory Profiler

    • 打开MemoryProfiler界面,可以链接真机检测,也可以在Editor检测。 点击Capture 保存当下帧的内容。
    • Capture 完毕之后,会保存本地一个镜像 : * .snap文件

    • 点击Snap 会显示对应帧的详细信息

    三、 单帧检测

    • 单帧检测, 一般去看工程内的资源, 去检查占用内存特别大的游戏对象。

    在TreeMap界面进行检查, 这里已经分好类, 同时可以根据Size的大小进行排序


    查看内存占用较大的游戏对象进行优化处理

    • 内存地址查看
      Fragmentation 页签进行查看, 点击对应的地址块,下方可显示详细信息

    四、 两帧对比检测

    一般使用两帧率对比用于检测内存泄漏。
    在要对比的节点分别进行Capture, 点击Compare Snapshots进行对比,在分别点击两个Capture,进行对比

    Summary页签可看汇总的对比内容


    在Objects and Allocations 页签可看详细的对比内容, 一般进行筛选。
    筛选方式:Diff -> Match -> new

    筛选之后就可以进行详细分析了, 可通过查看Size, Type, Referenced By等标签查看对应的游戏对象。

    对于有问题的对象, 可以查看对应详细的引用列表找到具体是哪里出问题

    五、总结

    MemoryProfiler 是一个非常好用的检查内存问题的工具,以下问题都可以通过该工具进行排查

    • 查找有问题的游戏资源,例如:Mesh和贴图非常大的美术资源
    • 内存泄漏问题
    • 游戏对象引用问题
  • 相关阅读:
    Integer缓存到底有啥问题?
    OAuth2:使用JWT令牌
    SpringBoot自动装配原理
    BI智能财务分析真的神,财务人都来用
    事务(包含ACID)
    vcruntime140.dll缺失如何修复,vcruntime140.dll重新安装方法分享
    JWT——jjwt使用
    让你起飞的Linux进阶操作
    LeetCode 每日一题——1403. 非递增顺序的最小子序列
    OpenGL ES学习(2)——顶点着色器和片元着色器
  • 原文地址:https://blog.csdn.net/alla_Candy/article/details/133272285