Я выделяю некоторое пространство с помощью malloc при запуске приложения. Если я не заполняю эту переменную top, она показывает 0% моей памяти, используемой этим приложением, но если я начну заполнять эту вершину переменной, она начнет показывать увеличение использования ram, как я заполняю этот массив.C malloc, использование памяти только при заполнении
Так что мой вопрос: не следует ли показывать это пространство, выделенное malloc, как используемое пространство моего приложения? Почему это только показывает увеличение использования ОЗУ из моего приложения, когда я заполняю эту переменную?
Я нахожусь в Ubuntu 10.10 64 бит. Вот код, который его заполняет:
char pack(uint64_t list, char bits, uint64_t *list_compressed, char control, uint64_t *index){
uint64_t a, rest;
if(control == 0){
a = list;
}
else{
rest = list >> (64 - control);
a = (control == 64 ? list_compressed[*index] : list_compressed[*index] + (list << control));
if(control + bits >= 64){
control = control - 64;
//list_compressed[*index] = a;
(*index)++;
a = rest;
}
}
//list_compressed[*index] = a;
control = control + bits;
return control;
}
Переменная «malloqued» является list_compressed.
Если я раскомментирую список_сжатой совокупности, то использование ram увеличивается, если я прокомментирую использование 0%.
http://en.wikipedia.org/wiki/Virtual_memory –