鸿HarmonyOS实战开发:进程的smaps抓取规范

系统内存分析模板帮助系统内存调优人员进行进程内存拆解。

系统内存的抓取配置参数

打开 VM Tracker 开关抓取内存数据。 

GitHub Logo

系统内存展示说明

将抓取的内存文件导入到 smartperf 中,查看进程内存的情况。 

GitHub Logo

系统内存中 Ability Monitor 泳道图显示

Ability Monitor 泳道图分为 MemoryTotal,Cached,SwapTotal,System Purgeable Total,System Purgeable Pin,DMA,Skia Gpu Memory 泳道。 

GitHub Logo

系统内存中 Ability Monitor 泳道图点选功能

System Purgeable Total 泳道图点选功能。 

GitHub Logo

  • TimeStamp:时间戳。
  • ActivePurg:当前时间点的ActivePurg内存。
  • InActivePurg:当前时间点的InActivePurg内存。
  • ShmPurg:当前时间点的ShmPurg内存。
    System Purgeable Total 泳道图框选功能。 

    GitHub Logo

  • Type:内存的类别。
  • AvgSize:当前内存的平均值。
  • MaxSize:当前内存的最大值。
  • MinSize:当前内存的最小值。
    System Purgeable Pin 泳道图点选功能。 

    GitHub Logo

  • TimeStamp:时间戳。
  • PinedPurg:当前时间点的PinedPurg内存。
  • ShmPurg:当前时间点的ShmPurg内存。
    System Purgeable Pin 泳道图框选功能。 

    GitHub Logo

  • Type:内存的类别。
  • AvgSize:当前内存的平均值。
  • MaxSize:当前内存的最大值。
  • MinSize:当前内存的最小值。
    DMA 泳道图点选功能。 

    GitHub Logo

  • TimeStamp:时间戳。
  • Process(pid):进程名(进程ID)。
  • Fd:DMA内存文件描述符。
  • Size:DMA内存大小。
  • Ino:Ino值。
  • ExpPid:申请者的进程号。
  • ExpTaskComm:ExpTaskComm的值。
  • BufName:DMA内存名。
  • ExpName:申请者的进程名。
  • Flag:去重标记,0表示正常,1表示进程内部重复数据,2表示进程间重复数据。
    DMA 泳道图框选功能。 

    GitHub Logo

  • Process(pid):进程名(进程ID)。
  • SumSize:DMA内存总量。
  • AvgSize:DMA内存的平均值。
  • MaxSize:DMA内存的最大值。
  • MinSize:DMA内存的最小值。
    Skia Gpu Memory 泳道图点选功能。 

    GitHub Logo

  • TimeStamp:时间戳。
  • GpuName:Gpu名称。
  • Process(pid):进程名(进程ID)。。
  • Size:对应进程的Gpu的使用size。
    Skia Gpu Memory 泳道图框选功能。 

    GitHub Logo

  • GpuName:Gpu名称。
  • Process(pid):进程名(进程ID)。
  • SumSize:Gpu内存总量。
  • AvgSize:Gpu内存的平均值。
  • MaxSize:Gpu内存的最大值。
  • MinSize:Gpu内存的最小值。

VM Tracker 下的 smaps 泳道图展示

smaps 泳道图分为 Dirty,Swapped,RSS,PSS,USS 泳道图。 

GitHub Logo

VM Tracker 下的 smaps 泳道图的点选和框选功能

点选和框选 Dirty,Swapped,RSS,PSS,USS 的 5 个泳道图中任一个显示的都是一样的内容,会显示 Smaps Statistic 和 Smaps sample 的 tab 页。 Smaps Statistic 的 tab 页展示。 

GitHub Logo

  • Type: 将抓取到的信息根据Type归类。
  • Path:虚拟内存块路径,类型中有多个则显示multiple。
  • Size:在该虚拟内存块路径下内存的size总和。
  • % of Res: 每行的Resident Size 占总Ressident Size的比例。
  • Count:统计的类型个数。
  • Rss: smaps节点中Rss。
  • Pss: smaps节点中Pss。
  • SharedClean: smaps节点中SharedClean。
  • SharedDirty:smaps节点中Shared_Dirty。
  • PrivateClean: smaps节点中PrivateClean。
  • PrivateDirty:smaps节点中PrivateDirty。
  • Swap:smaps节点中Swap。
  • SwapPss:smaps节点中SwapPss。
    Smaps sample 的 tab 页展示。 

    GitHub Logo

  • TimeStamp: 时间戳信息。
  • Type: 将抓取到的信息根据Type归类。
  • Path:虚拟内存块路径,类型中有多个则显示multiple。
  • Address Range:每段虚拟内存段的开始和结束位置。
  • Rss: smaps节点中Rss。
  • Pss: smaps节点中Pss。
  • SharedClean: smaps节点中SharedClean。
  • SharedDirty:smaps节点中Shared_Dirty。
  • PrivateClean: smaps节点中PrivateClean。
  • PrivateDirty:smaps节点中PrivateDirty。
  • Swap:smaps节点中Swap。
  • SwapPss:smaps节点中SwapPss。
  • Reside: Rss / Size 比值。
  • Protection: 内存块的权限(读写执行)。

VM Tracker 下的 GPU 泳道图展示

smaps 泳道图分为 GL,Skia Gpu Dump Toal,Skia Gpu Dump Window,Skia Gpu Memory 泳道图。 

GitHub Logo

 Skia Gpu Memory 泳道图点选功能。 

GitHub Logo

  • TimeStamp:时间戳。
  • GpuName:Gpu名称。
  • Thread(tid):线程名(线程ID)。
  • Size:对应线程的Gpu的使用size。
    Skia Gpu Memory 泳道图框选功能。 

    GitHub Logo

  • GpuName:Gpu名称。
  • Thread(tid):线程名(线程ID)。
  • SumSize:Gpu内存总量。
  • AvgSize:Gpu内存的平均值。
  • MaxSize:Gpu内存的最大值。
  • MinSize:Gpu内存的最小值。
    Gl 泳道图框选功能。 

    GitHub Logo

  • TimeStamp:时间戳。
  • GL_PSS:GL_PSS的大小。
    Skia Gpu Dump Toal 泳道图点选功能。 

    GitHub Logo

  • Module / Category:模块/目录。
  • Size:按照模块/目录显示size大小。
    Skia Gpu Dump Toal 泳道图框选功能。 

    GitHub Logo

  • TimeStamp:时间戳。
  • Module / Category:模块/目录。
  • AvgSize:对应模块/目录下size的平均值。
  • MaxSize:对应模块/目录下size的最大值。
  • MinSize:对应模块/目录下size的最小值。
    Skia Gpu Dump Window 泳道图点选功能。 

    GitHub Logo

  • Window / Module / Category:窗口/模块/目录。
  • Size:按照窗口/模块/目录显示size大小。
    Skia Gpu Dump Window 泳道图框选功能。 

    GitHub Logo

  • TimeStamp:时间戳。
  • Window / Module / Category:窗口/模块/目录。
  • AvgSize:对应窗口/模块/目录下size的平均值。
  • MaxSize:对应窗口/模块/目录下size的最大值。
  • MinSize:对应窗口/模块/目录下size的最小值。

最后

有很多小伙伴不知道学习哪些鸿蒙开发技术?不知道需要重点掌握哪些鸿蒙应用开发知识点?而且学习时频繁踩坑,最终浪费大量时间。所以有一份实用的鸿蒙(HarmonyOS NEXT)资料用来跟着学习是非常有必要的。 

点击领取→【纯血版鸿蒙全套最新学习资料】(安全链接,放心点击希望这一份鸿蒙学习资料能够给大家带来帮助,有需要的小伙伴自行领取~限时开源!!


 鸿蒙(HarmonyOS NEXT)最新学习路线

有了路线图,怎么能没有学习资料呢,小编也准备了一份联合鸿蒙官方发布笔记整理收纳的一套系统性的鸿蒙(OpenHarmony )学习手册(共计1236页)与鸿蒙(OpenHarmony )开发入门教学视频,内容包含:ArkTS、ArkUI、Web开发、应用模型、资源分类…等知识点。

获取以上完整版高清学习路线,请点击→纯血版全套鸿蒙HarmonyOS学习资料

这份鸿蒙(HarmonyOS NEXT)资料包含了鸿蒙开发必掌握的核心知识要点,内容包含了(ArkTS、ArkUI开发组件、Stage模型、多端部署、分布式应用开发、音频、视频、WebGL、OpenHarmony多媒体技术、Napi组件、OpenHarmony内核、(南向驱动、嵌入式等)鸿蒙项目实战等等)鸿蒙(HarmonyOS NEXT)技术知识点。


HarmonyOS Next 最新全套视频教程

 《鸿蒙 (OpenHarmony)开发基础到实战手册》

OpenHarmony北向、南向开发环境搭建

《鸿蒙开发基础》

  • ArkTS语言
  • 安装DevEco Studio
  • 运用你的第一个ArkTS应用
  • ArkUI声明式UI开发
  • .……

《鸿蒙开发进阶》

  • Stage模型入门
  • 网络管理
  • 数据管理
  • 电话服务
  • 分布式应用开发
  • 通知与窗口管理
  • 多媒体技术
  • 安全技能
  • 任务管理
  • WebGL
  • 国际化开发
  • 应用测试
  • DFX面向未来设计
  • 鸿蒙系统移植和裁剪定制
  • ……

《鸿蒙进阶实战》

  • ArkTS实践
  • UIAbility应用
  • 网络案例
  • ……

大厂面试必问面试题

鸿蒙南向开发技术

鸿蒙APP开发必备


请点击→纯血版全套鸿蒙HarmonyOS学习资料

总结

总的来说,华为鸿蒙不再兼容安卓,对程序员来说是一个挑战,也是一个机会。只有积极应对变化,不断学习和提升自己,才能在这个变革的时代中立于不败之地。 

                   

  • 16
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值