PDT工具使用说明文档—老化前后&异常拉起统计

来源飞书 wiki(obj_token: C45Nd43Kpo2XELxgTTDc65rdnTf)

封装包地址

名称:PDT_内存

🔗 小米企业网盘外链PDT_内存 封装包 | 密码 T03w

代码

使用见封装工具,代码尽量不要申请

https://git.n.xiaomi.com/zs15/PerfDetector
git clone git@git.n.xiaomi.com:zs15/PerfDetector.git

使用方法

执行对应解析的exe输入文件路径

老化内存前后进程对比差异(已合入模型)

说明

获取meminfo老化前后meminfo数据

工具文件名

main_compare

工具执行

file_path1为老化前文件路径

file_path2为老化后文件路径

out_root_path为结果输出路径

结果文件命名为:memory_comparison_result.xlsx

图片展示的是PDT工具使用说明文档中峰值内存(meminfo趋势检测)部分的代码界面。左侧是文件目录,包含多个.py文件。右侧代码区域中,红框突出显示了main_compare函数的代码部分

应用后台查杀拉起统计(用封装包)

执行抓取logcat,在执行场景内存工具之前执行(按需获取)

该图片展示了Linux终端的命令行操作内容,其中红框标注的核心命令为adb -s 77271758 logcat -b all -c,用于清空指定设备的日志

工具执行:Logcat日志解析

注意:过大的文件会解析失败,需要用下方5.2-5.3处理

工具文件名:main_backgroup_up

这张图片展示了代码编辑界面的局部,左侧是项目文件结构,可见项目名为PerDetector,包含main_background_up.py等多个Python文件

大文件处理

文件名:main_backgroup_up_split

单个日志文件过大,单独在一个文件夹下执行下面命令;如果1G解析电脑不行就改成500M

split -b 1G log文件名名称 log_part_

切分效果,存在part命名文件

图片展示了文件夹中多个日志文件,其中log_part_aa文件被红色框突出显示

大文件切分后执行解析

图片展示了PDT工具中大文件处理后的日志解析效果。左侧为代码编辑界面,显示了main_background_up_split.py文件代码

图片展示的是在终端执行命令./main_backgroup_up_split进行大文件处理的界面

峰值内存(meminfo趋势检测)

标黄部分为前台应用;输出excel文件

  • 原理说明
    • 数据源文件:meminfo文件
    • 解析数据:Total PSS by OOM adjustment
    • 前台统计方式:Foreground第一个进程

图片展示的是meminfo_all_xm/meminfo_all_20260305_205733文件内容,其中以红色框突出显示了com.miui.home和com.miui.personalassistant两个进程的相关信息

图片展示了PDT工具相关代码及meminfo文件。上方代码编辑器中,红色框突出显示了文件路径

脚本抓取logcat方法(内部工具调用)

图片展示了PDT工具中LogcatCollector.py脚本的代码及运行结果

  1. 修改记录
时间改动说明
2026年1月9日
2026年1月14日1. 唤醒详细数据调整
2. 增加查杀原因次数排序
图片展示的是脚本抓取logcat方法生成的异常拉起统计结果图片是一张Excel表格截图,展示了查杀原因排序及次数的数据

bug修复

 'com.google.android.webview:webview_service': {'com.xiaomi.market': 22, 'com.lemon.lv': 2, 'com.tencent.mobileqq': 3, 'com.ss.android.ugc.aweme.lite': 3, 'com.baidu.BaiduMap': 3, 'com.qiyi.video': 4, 'com.sankuai.meituan': 2, 'com.kugou.android': 3, 'com.taobao.idlefish': 3, 'com.dragon.read': 3, 'com.tencent.news': 3, 'com.miui.systemAdSolution': 3, 'com.android.quicksearchbox': 1, 'com.miui.video': 2, 'com.duowan.kiwi': 2, 'com.xiaomi.account': 3, 'com.sina.weibo': 2, 'com.autonavi.minimap': 2, 'com.tencent.qqlive': 2, 'com.ss.android.ugc.aweme': 3, 'com.baidu.searchbox': 2, 'com.baidu.tieba': 1, 'com.kmxs.reader': 1, 'com.ss.android.article.lite': 1}

参考文档: