Jacky's blog
首页
  • Android
  • Web
  • Server
  • Python
  • iOS
  • Java
  • Vue
  • 计算机基础
  • AI
  • 全部工具
  • CLI 工具
  • 编辑器
  • 开发工具
  • 构建工具
  • 版本控制
  • 调试工具
  • 网络工具
  • 个人成长
  • 博客
  • 分类
  • 标签
  • 归档
收藏
GitHub (opens new window)

Jack Yang

编程; 随笔
首页
  • Android
  • Web
  • Server
  • Python
  • iOS
  • Java
  • Vue
  • 计算机基础
  • AI
  • 全部工具
  • CLI 工具
  • 编辑器
  • 开发工具
  • 构建工具
  • 版本控制
  • 调试工具
  • 网络工具
  • 个人成长
  • 博客
  • 分类
  • 标签
  • 归档
收藏
GitHub (opens new window)
  • tutorial
  • Jetpack

  • 组件

  • AndroidX

  • 动态化
  • APM

    • apm相关概念
    • Android稳定性治理
    • Android低端机性能优化
    • monkey测试
    • bitmap
    • 大对象监控
    • android内存
    • 移动端的网络优化
    • 记一次anr问题查询ThreadedRenderer
    • 记一次shrink代码减包调研方案
    • proguard
    • R8
    • perfetto
    • mat
      • hprof
        • 本地dump技巧
        • 客户端dump
      • concepts
      • overview
        • Histogram
      • link
  • 组件化

  • 鸿蒙

  • 工具

  • 其他

  • Kotlin

  • android_snip
  • ANDROID 深度技术面试问答
  • android tool
  • android图形系统
  • android
  • apm
Jacky
2024-10-27
目录

mat

.hprof 文件打开工具, 这个文件也可以使用 android studio 打开。 对于比较大的 hprof 文件可以使用 MAT 打开

# hprof

# 本地dump技巧

  1. 使用AS的profile功能。监控memory的变化,当memory到达一定值时,先强制gc下,再进行dump
  2. 有的时候需要静置一段时间,看memory是否有降低。

# 客户端dump

因为dump的OOM 后 dump 的 Hprof 体积过大。采用 tailor 开源方案 对Hprof裁剪压缩后上传,但是裁剪压缩后的文件目前没有工具可以直接解析打开,因此需要先进行还原

  • tailor方案: 对 Hprof 裁剪压缩后上传.
    • python3 decode.py -i 裁剪后文件 -o 还原后文件目录及名称
  • hprof-conv: 使用此工具转换后,就可以使用 MAT 打开了
    • hprof-conv [in] [out]

# concepts

  • Shadow Heap: 对象结构自身所占用的内存大小,不包括其属性引用对象所占的内存
    • 如 java.util.ArrayList 对象的 Shallow Heap 包含8字节的对象头、8字节的对象数组属性 elementData 引用 、 4字节的 size 属性、4字节的 modCount 属性(从 AbstractList 继承及对象头占用内存大小),有的对象可能需要加对齐填充但 ArrayList 自身已对齐不需补充,注意不包含 elementData 具体数据占用的内存大小
  • Retained Set: 指的是该对象被 GC 回收后,所有能被回收的对象集合
  • Retained Heap: 一个对象被 GC 回收后,可释放的内存大小

# overview

# Histogram

  • List objects: 查看对象引用关系
    • with outgoing references: 本对象引用外部对象
    • with incoming references: 外部对象引用本对象

# link

  • learn and analyse: link (opens new window)
  • download: link (opens new window), 如果下载过慢,可以在下载页面换镜像
  • misc
    • MAT 工具定位分析 Java 堆内存泄漏问题方法 (opens new window)
#Android#APM#performance
上次更新: 2026/10/18, 22:14:48
perfetto
android module

← perfetto android module→

最近更新
01
Codex 使用与会话管理指南
10-17
02
Tailscale 入门:让自己的设备跨网络互联
10-15
03
GitHub CLI(gh)工作流与 CI 排查
10-08
更多文章>
Theme by Vdoing | Copyright © 2019-2026 Jacky | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式