Linux에서 실행중인 프로그램의 메모리 소비를 측정하려고합니다. 나는 1G 메모리를 할당하기위한 C 프로그램을 작성한 다음 시간을 사용하여 "최대 주민 세트 크기"를 출력합니다.최대 상주 세트 크기가 맞지 않습니다.
/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