使用meminfo分析Android单个进程内存信息

Android内存笔记之基础知识篇 内存是性能的一个重要指标,能直接影响用户的体验,特别是OOM会直接导致进程crash。而内存是一个庞大的知识体系,一两句话没办法讲清楚。所以会以一个系列文章来巩固内存知识。 阅读详情

可以使用adb shell dumpsys meminfo -a <process id>/<process name>来查看一个进程的memory。截图如下:


Naitve Heap Size: 从mallinfo usmblks获得,代表最大总共分配空间

Native Heap Alloc: 从mallinfo uorblks获得,总共分配空间

Native Heap Free: 从mallinfo fordblks获得,代表总共剩余空间 

Native Heap Size 约等于Native Heap Alloc + Native Heap Free

mallinfo是一个C库, mallinfo 函数提供了各种各样的通过C的malloc()函数分配的内存的统计信息。

Dalvik Heap Size:从Runtime totalMemory()获得,Dalvik Heap总共的内存大小。

Dalvik Heap Alloc: Runtime totalMemory()-freeMemory() ,Dalvik Heap分配的内存大小。

Dalvik Heap Free:从Runtime freeMemory()获得,Dalvik Heap剩余的内存大小。

Dalvik Heap Size 约等于Dalvik  Heap Alloc + Dalvik  Heap Free

OtherPss, include Cursor,Ashmem, Other Dev, .so mmap, .jar mmap, .apk mmap, .ttf mmap, .dex mmap, Other mmap, Unkown统计信息都可以在process的smap文件看到。

Objects and SQL 信息都是从Android Debug信息中获得。

其他类型               smap 路径名称          描述

Cursor                  /dev/ashmem/Cursor  Cursor消耗的内存(KB)

Ashmem               /dev/ashmem            匿名共享内存用来提供共享内存通过分配一个多个进程

                                                         可以共享的带名称的内存块

Other dev             /dev/                        内部driver占用的在 “Other dev”                                                 

.so mmap             .so                            C 库代码占用的内存

.jar mmap            .jar                           Java 文件代码占用的内存

.apk mmap           .apk                           apk代码占用的内存

.ttf mmap              .ttf                           ttf 文件代码占用的内存

.dex mmap             .dex                         Dex 文件代码占用的内存

Other mmap                                          其他文件占用的内存

参考:

http://man7.org/linux/man-pages/man3/mallinfo.3.html

http://www.gnu.org/software/libc/manual/html_node/Statistics-of-Malloc.html

http://gee.cs.oswego.edu/pub/misc/malloc.h

http://www.redwolf-blog.com/?p=882


原文地址:https://my.oschina.net/shaorongjie/blog/128442

【Android 内存优化】dumpsys meminfo PID 查看单进程内存信息详解 阅读详情

相关推荐

dumpsys meminfo内存分析解读(收集整合)

OOM机制是机器底层的一种强制保鲜,在OOM发生的时候内核会排序强制杀掉进程来保证系统的继续运行,同样这种OOM异常容易发生在低内存机器上,比如512M。 首先系统会根据程序是否是空进程(已经由用户关闭的不带有任何服务和provider的进程),是否有服务,是否有provider,是否为前台进程,来排序,可以输入 adb shell dumpsys meminfo来查看,列出信息中的Total PSS by OOM adjustment:就是系统为程序的OOM排序结果,OOM异常的时候会根据这个表单从下网上

只要你是蓝吹我们就是朋友 6291

内存优化之一——内存优化工具参数详解

博客结构1.背景2.内存查看方式(1).AS-Profiler(1).运行框-命令行3.内存参数(0)PSS(1)Java heap(2)Native Heap(3)Code(4)Stack(5)Graphics(6)Private Other(7)System(8)其它参数4.站在巨人肩膀上 用简单通俗的话来记录自己对架构的理解 1.背景 在一般的应用中,对前台进程和后台进程的内存要求不高。但是,现在的应用作为系统应用,在内置的时候,会考虑在内置进手机时,更何况现在是常驻进程时,这时的后台进程就显得弥足珍

技术人生 2970

【性能】【内存】Android内存分析命令

常用的Android内存分析命令

weixin_41572402的博客 5643

Android内存分析和调优(上)

最近我们的android app占用了大量内存,于是领导安排做减少内存占用的工作。 要优化内存,首先要做的就是分析内存占用情况。android提供了多个工具和命令进行内存分析。 第一层 Procrank 很粗略的,可以使用"adb shell procrank",结果类似于 PID Vss Rss Pss Uss cm...

weixin_30922589的博客 173

Android 4.4 meminfo 实现分析

Android提供了一个名为meminfo的小工具帮助应用分析自身的内存占用,并且在4.4还新增了memtrack HAL模块,SoC厂商通过实现memtrack模块,让meminfo可以获取GPU相关的一些内存分配状况。了解meminfo的实现,对我们更深入了解应用的内存占用状况是很有帮助的。而这篇文章的目的就是分析Android 4.4 meminfo的内部实现源码,让开发者通过这些信息可以更了解自己应用的内存占用状况。

THINK . DESIGN . CODE 1万+

Android平台上的Native内存分析

文章目录背景UE4的内存统计memreportMemoryProfiler2LLMAndroid进程内存DDMSMemoryAnalyzer 背景 UE4游戏在Android上的进程内存占用(PSS)很让人困惑, 没有一个清晰直观的方式可以统计到每一部分的内存占用. 所以在做内存分析的过程中顺手做了一个统计工具, 可以从系统底层统计UE4在Android的所有内存分配(包括Graphics部分),...

逍遥剑客 1万+

android单个进程内存,使用meminfo分析Android单个进程内存信息

可以使用adb shell dumpsys meminfo -a /来查看一个进程的memory。截图如下: Naitve Heap Size: 从mallinfo usmblks获得,代表最大总共分配空间Native Heap Alloc: 从mallinfo uorblks获得,总共分配空间Native Heap Free: 从mallinfo fordblks获得,代表总共剩余空间Nativ...

weixin_42099814的博客 429

MATLAB 论文复现——面向紧急需求响应的规模化灵活资源负荷管理快速决策方法

其次,对灵活资源参与EDR的功率分配模型进行了建模,并提出了基于分层分布式共识算法的快速决策方法,对功率分配模型进行快速求解,以满足EDR实时性的需求,在保证较高精度的前提下提高了决策速度。[1]孔祥玉,杨至端,孙裕策,等.面向紧急需求响应的规模化灵活资源负荷管理快速决策方法[J/OL].电力系统自动化,1-13[2024-07-29].http://kns.cnki.net/kcms/detail/32.1180.TP.20240709.1843.002.html.关键词: 规模化灵活资源;

sjr1478的博客 373

memory usage分析

memory usage分析

wzx311的博客 1464

【Java】对接微信转账到零钱接口 Java微信商家转账 apiV3(该踩的雷都踩了)

配置apiv3依赖java代码。

Moonhwa的博客 4317

Vivado实战:如何用BUFGMUX_CTRL实现FPGA双时钟热切换(附时序约束模板)

本文详细介绍了如何使用Xilinx FPGA中的BUFGMUX_CTRL原语实现双时钟热切换的工业级解决方案。通过分析BUFGMUX_CTRL的核心机制、PCB布局约束和电源噪声抑制方法,提供Vivado实现全流程和时序约束模板,帮助工程师在工业自动化、车载电子等场景中提升系统可靠性。

weixin_29186249的博客 572

Android使用procrank和dumpsys meminfo分析内存占用情况

如果你想查看所有进程的内存使用情况,可以使用命令procrank、dumpsys meminfo查看,当然也只可以过滤出某个进程如:dumpsys meminfo | grep -i phone 先来看下procrank sh-4.2# procrank PID Vss Rss Pss Uss cmdline 1078 59840K 59

DMT专栏 4万+

WinFrom真入门(1)——Windows窗体应用概念

用Winform开发的桌面程序,是在Windows操作系统上运行的,这个不用多说。窗体(Form)的作用‌:窗体是用户交互的容器,承载按钮、文本框等控件,构成应用程序的界面‌。在Windows操作系统中,窗体(窗口)所处可见,例如: 一个标准的窗体其实就是一块矩形区域,客户区域指的是窗口内部区域。除去标题兰和边框外的区域可视为内部区域,称为客户区域。我们开发人员可以在窗口的客户区域中放置控件,也可以在其中绘制出咱们所需要的图形。WinForm程序的项目的结构,如下图: Main()方法是程序的入口,这几行代

ByteGeek 1633

Android meminfo 查看方法及解析

pools统计到了 Free RAM中, 估计统计到了cached kernel中, 因为如果使用adb shell "echo 3 > /proc/sys/vm/drop_caches" , pools会清零, 同时 cached kernel 大幅减少, free增加。获取自: /sys/block/zram/mm_stat or /sys/block/zram/mem_used_total。推荐博客: Linux:/proc/meminfo参数详细解释-优快云博客,里面说明的很清楚。

april_12345的博客 6341

FFmpeg视频缩放终极指南:从基础命令到保持宽高比的5种实战技巧

本文是FFmpeg视频缩放的终极指南,详细讲解了从基础命令到保持宽高比的5种实战技巧。针对不同平台(如抖音、B站、Instagram)的分辨率要求,提供了具体的参数模板和批量处理脚本,帮助内容创作者高效、精准地调整视频大小,避免画面变形或黑边问题,实现多平台适配。

juice的博客 457

深入解析STM32H743双精度FPU:从配置误区到三角函数加速技巧

本文深入解析STM32H743双精度FPU的配置与优化技巧,涵盖常见误区、三角函数加速及飞控系统应用。通过实测数据展示如何利用FPU提升数学运算效率,特别适合工业控制、无人机飞控等高精度实时应用场景。

weixin_29190651的博客 639

android_内存分析 (dumpsys meminfo)

PSS 这是一种按照比列来划分内存的统计方法。比如一个共享库占1G。由两个进程共享,那么PSS的计算方式就是,将1G一分为2。分别为512MPrivate Dirty:其中Private表示只有本进程可访问。Dirty表示还没有写回磁盘。举例如下:如上图第一行表示,分配给本进程的,已经被修改,但未写入磁盘的Native Heap大小为107140KB。Private Dirty 进程本身使用的内存总数,包含了进程主动申请的以及修改的继承自Zygote的内存。其实。例如。

MrPeng的博客 2455

YOLOv8性能提升:引入华为GhostNetv1特征提取网络

本文提出一种轻量化改进方案,将GhostNetV1作为YOLOv8的主干网络,以提升移动端部署效率。通过Ghost模块的两步特征生成机制(初级卷积+廉价操作),显著降低了30%的计算量(FLOPs)和参数量,精度损失控制在1%以内。实验表明,改进后的模型在骁龙865芯片上推理速度提升25%。核心创新包括:1)用GhostBottleneck替换CSP模块;2)保留FPN+PAN结构确保多尺度检测能力;3)提供完整的PyTorch实现方案。该工作为资源受限场景的目标检测提供了实用解决方案,未来可结合注意力机制

shrgegrb的博客 1180

Android内存分析-meminfo流程以及部分内存的组成

android meminfo分析

qq_16548551的博客 3978

用Python实现辅助病案首页主诊断编码:从数据清洗到模型上线(上)

本文介绍了一个使用Python构建AI辅助病案首页主诊断编码系统的完整指南。文章从环境搭建开始,详细讲解了数据准备与清洗策略,包括数据格式标准化、文本清洗与脱敏处理等关键步骤。系统采用深度学习技术处理复杂的医疗文本,解决ICD编码面临的文本复杂性、专业性和数据不一致性等挑战。文中提供了完整的代码实现,涵盖数据预处理、敏感信息脱敏、文本分割等实用功能模块,帮助医疗机构构建可落地、可扩展的智能编码系统,提高编码准确性和工作效率。

AllenLV的博客 922

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

上一篇: Android 中查看内存的使用情况集常用adb命令
下一篇: 使用adb shell dumpsys检测Android的Activity任务栈
cbbbc
博客等级 码龄15年 609粉丝 37原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值