Linuxで実行中のプログラムのメモリ消費量を測定しようとしています。私は1Gのメモリを割り当てるCプログラムを書いた後、時間を使って "Maximum residident set size"を出力します:常駐セットの最大サイズが意味を持たない
/usr/bin/time -f '%Uu%Ss%er%MkB%x%C'/takeMem 1000000000
0.85u 0.81s 1.68r 3910016kB 0 ./takeMem 1000000000
'男の時間' から、私はこのようなプログラムのための "最大常駐セットのサイズは" ものの3.9Gメモリを取ると解釈すべきですプログラムは1Gメモリしか割り当てませんでした。それは意味がありません。
「最大居住者のサイズ」が高いことは誰でも知ることができますか?
Cコードは非常に簡単です:
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int memLength = atoi(argv[1]);
fprintf(stderr, "Allocating %d memory...", memLength);
unsigned char* p = new unsigned char[memLength];
fprintf(stderr, "Done\n");
while (true) {
int i = rand() % memLength;
char v = rand() % 256;
p[i] = v;
}
return 0;
}
'時間1.7-38':https://bugzilla.redhat.com/show_bug あなたがチェックしたいかもしれません.cgi?id = 702826 – daharon