smem是分析系统内存的便利工具。
目录
- 快速使用
- 介绍
- 使用smem的步骤概述
- 详细介绍smem
- 4.1 安装smem工具
- 4.2 构建'smemcap'(或者使用构建好的二进制文件)
- 4.2.1 预建二进制(适用于G1)
- 4.3 在您的Android机器上安装'android-smemcap'
- 4.4 收集安卓机器上的内存信息
- 4.5 从系统中检索收集的数据
- 4.6 查看主机上的数据
- 4.7 查看信息和图表
- 4.8 示例图表
- 4.9 提供其他系统信息
- 5 使用图形查看器
- 6 分析结论
快速使用
如果你是一个急性子,这里有一些快速的应用步骤:
* download smem * hg clone http://selenic.com/repo/smem * cd smem * (install python-matplotlib and python-matplotlib-tk, if needed) * cross-compile smemcap for Android, using something like 'agcc' * agcc smemcap.c -o android-smemcap * install android-smemcap onto your target * adb shell mkdir /data/smem * adb push android-smemcap /data/smem * collect memory information on target * adb shell "/data/smem/android-smemcap >/data/smem/memdata1.tar" * retreive the collected data * adb pull /data/smem/memdata1.tar . * review the data on host * smem -S memdata1.tar
介绍
smem是一个内存工具,用于分析Linux系统上的内存使用量。 Android提供的'ps'工具仅显示VSIZE和RSS内存列。 即使您在Android系统上安装busybox,该工具的'ps'也只会显示VSIZE值。 VSIZE是虚拟映像的总大小,RSS是驻留集大小 - 内核对特定进程占用的物理页数。 这些数字对于指示特定应用程序或守护程序的内存中的实际成本并不是非常有用。
在smem网站上有如下描述:
smem是一个可以在Linux系统上提供大量内存使用情况报告的工具。 与现有工具不同,smem可以报告比例集大小(PSS),这是虚拟内存系统中库和应用程序使用的内存量的更有意义的表示。
由于大部分物理内存通常在多个应用程序之间共享,因此称为驻留集大小(RSS)的内存使用的标准度量将显着高估内存使用量。 相反,PSS测量每个应用程序的每个共享区域的“公平份额”,以便在引导期间给出系统活动的实际度量。
smem包含一个针对于android的数据捕获工具,以及一个用于开发的主机分析工具。
使用smem的步骤概述
要在Android系统上使用smem,您需要执行以下步骤:
- 在主机上安装smem工具
- 在主机上构建smemcap(或使用预先构建的二进制文件)
- 在Android目标系统上安装smemcap
- 使用smemcap从目标上的/ proc捕获内存信息
- 从系统中检索收集的数据
- 在主机上使用smem工具和收集的数据
- 查看内存信息和图表
- [可选]提供其他系统信息
这些步骤将在以下部分中详细描述。 本文是基于Android 1.5软件和SDK编写的。
详细介绍
安装smem
使用mercurial工具下载(hg)
$ hg clone http://selenic.com/repo/smem destination directory: smem requesting all changes adding changesets adding manifests adding file changes added 37 changesets with 40 changes to 5 files 5 files updated, 0 files merged, 0 files removed, 0 files unresolved