Linux'ta çalışan bir programın bellek tüketimini ölçmeye çalışıyorum. 1G belleği ayırmak için bir C programı yazdım, ardından "Maksimum yerleşik set boyutu" çıktı için zaman kullanıyorum:Maksimum yerleşik set boyutu anlamlı değil
/usr/bin/time -f '% Uu% Ss% er% MkB% x% C'./takeMem 1000000000
0.85u 'adam zaman' Gönderen 0.81s 1.68r 3910016kB 0 ./takeMem 1000000000
, ben her ne kadar 3.9 g bellek almak böyle bir program için "Maksimum ikamet seti boyutu" şeklinde değerlendirerek Program sadece 1G hafıza tahsis edildi. Mantıklı değil.
"Maksimum yerleşik set büyüklüğü" ne sebep olduğu bilinen herhangi biri olabilir mi?
C kodu
oldukça basittir:#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;
}
'zaman 1.7-38': https://bugzilla.redhat.com/show_bug Çeki isteyebilirsin cgi? id = 702826 – daharon