Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 最大驻留集大小没有意义_Linux_Memory - Fatal编程技术网

Linux 最大驻留集大小没有意义

Linux 最大驻留集大小没有意义,linux,memory,Linux,Memory,我试图测量Linux中正在运行的程序的内存消耗。我编写了一个C程序来分配1G内存,然后用时间输出它的“最大驻留集大小”: /usr/bin/time-f“%Uu%Ss%er%MkB%x%C”。/takeMem 100000000 0.85u 0.81s 1.68r**3910016kB**0./takeMem 100000000 从人工时间,我应该解释这样的程序的“最大驻留集大小”需要3.9G内存,尽管该程序只分配了1G内存。这没有道理 有谁知道是什么导致了“最大驻留集大小”如此之高 C代码非

我试图测量Linux中正在运行的程序的内存消耗。我编写了一个C程序来分配1G内存,然后用时间输出它的“最大驻留集大小”:

/usr/bin/time-f“%Uu%Ss%er%MkB%x%C”。/takeMem 100000000
0.85u 0.81s 1.68r**3910016kB**0./takeMem 100000000
人工时间
,我应该解释这样的程序的“最大驻留集大小”需要3.9G内存,尽管该程序只分配了1G内存。这没有道理

有谁知道是什么导致了“最大驻留集大小”如此之高

C代码非常简单:

#包括
#包括
int main(int argc,char*argv[])
{
int memLength=atoi(argv[1]);
fprintf(标准,“分配%d内存…”,memLength);
无符号字符*p=新的无符号字符[memLength];
fprintf(stderr,“完成”\n);
while(true){
int i=rand()%memLength;
char v=rand()%256;
p[i]=v;
}
返回0;
}

我不久前偶然发现了这一点。这是GNU时间中的一个bug,值太大了4倍,因为它假设页面的大小并将其转换为kB,即使它首先已经是kB了。 您可能需要检查:


对于RedHat/CentOS/Fedora系统,这是在包
time-1.7-38
中修补的: