首页 > 解决方案 > 我应该使用什么数据类型来解析 /proc/[pid]/smaps 中的大小?

问题描述

它们总是4kB的时间吗?把所有Sizes的 smap 加起来能有多大?

标签: clinux

解决方案


那里的粒度是内存页面大小。它可能是 4096 或 8192 字节(或者甚至是其他东西,不确定)。通常,如果可用,您可以使用sysconf(_SC_PAGESIZE)或使用预定义的PAGE_SIZE宏来确定它。

所有条目总和的上限Size是整个虚拟地址空间大小,即2^3232 位系统的2^64字节数和 64 位系统的字节数。当然,实际情况总是在这个限制之下,至少因为内核占用了一部分地址空间并且它没有在/proc/<pid>/smaps.


推荐阅读