如何打印Android内存映射?
How to print Android memory map?
我对 Android 内存映射有疑问。
我想查看进程的内存映射,然后在 adb shell
中找到这样的解决方案
cat /proc/[pid]/maps
但由于 "Permission Denied" 的错误,它没有显示任何内容
(我的 phone 没有 root phone..)
我做错了什么吗?这个问题有另一个解决方案(另一个命令..)吗?
我想查看进程的内存映射.. !
com.android.browser 中的内存区域
a) 地址范围:-
(1) 未命名区域可以是任何东西。例如,dlmalloc 实现将使用 mmap() 分配大区域(其中 "large" 是可配置的;可能是 64K 或 256K)。
b) 有多个 [stack:xxxx] 区域,它们是线程本地堆栈吗?如果不是,它们是什么?
(2) [stack:xxxx] 栈是指定线程的线程栈;每个都是 1MB,带有保护页面以捕获 over/underruns。它们不会都是顺序的,因为并非所有线程都同时启动。
c) 如何查看内核的内存映射space?
(3)内核从0xc0000000开始。 ASLR 使事物的放置有些随机。有多种工具可以用来查看 Linux 内核。
android 中查看内存映射的命令:-
root@android:/ # cat /proc/2348/maps
/proc/<pid>/statm
/proc/<pid>/maps
/proc/<pid>/smaps
'top' 命令将显示 VSS 和 RSS。
Vss = 虚拟集大小
Rss = 常驻集大小
欲了解更多详情,您可以进一步访问 http://elinux.org/Android_Memory_Usage
我对 Android 内存映射有疑问。 我想查看进程的内存映射,然后在 adb shell
中找到这样的解决方案cat /proc/[pid]/maps
但由于 "Permission Denied" 的错误,它没有显示任何内容 (我的 phone 没有 root phone..)
我做错了什么吗?这个问题有另一个解决方案(另一个命令..)吗?
我想查看进程的内存映射.. !
com.android.browser 中的内存区域 a) 地址范围:- (1) 未命名区域可以是任何东西。例如,dlmalloc 实现将使用 mmap() 分配大区域(其中 "large" 是可配置的;可能是 64K 或 256K)。 b) 有多个 [stack:xxxx] 区域,它们是线程本地堆栈吗?如果不是,它们是什么? (2) [stack:xxxx] 栈是指定线程的线程栈;每个都是 1MB,带有保护页面以捕获 over/underruns。它们不会都是顺序的,因为并非所有线程都同时启动。 c) 如何查看内核的内存映射space? (3)内核从0xc0000000开始。 ASLR 使事物的放置有些随机。有多种工具可以用来查看 Linux 内核。 android 中查看内存映射的命令:-
root@android:/ # cat /proc/2348/maps
/proc/<pid>/statm
/proc/<pid>/maps
/proc/<pid>/smaps
'top' 命令将显示 VSS 和 RSS。 Vss = 虚拟集大小 Rss = 常驻集大小 欲了解更多详情,您可以进一步访问 http://elinux.org/Android_Memory_Usage