アプリの起動時に malloc でスペースを割り当てています。この変数にデータを入力しない場合、top はこのアプリで使用されるメモリの 0% を示しますが、この変数にデータを入力し始めると、この配列にデータを入力する方法で RAM の使用量が増加し始めます。
だから私の質問は:私のアプリの使用済みスペースとしてmallocによって割り当てられたこのスペースをトップに表示すべきではありませんか? この変数を入力すると、アプリからの RAM 使用量の増加のみが表示されるのはなぜですか?
私は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 です。
list_compressed の母集団のコメントを外すと、RAM の使用量が増えます。コメントのままにしておくと、使用量は 0% になります。