2015-04-01 31 views
-1

我修改了slob.c,以便它收集最近100個小列表分配的統計信息。我做了必要的編輯以確保使用SLOB。使用malloc()測試slob.c()

我正在運行一個測試程序,調用大小爲20個字節的malloc()大約10,000或100,000次。

但是我的SLOB測試結果在測試程序運行後立即聲明平均聲明的大小爲140字節(當我期待它至少接近20字節時)。

我做錯了什麼,有沒有一種方法來準確測試SLOB?

我很確定我的數據收集是準確的,因爲我有幾位教授爲我檢查了它。這是我目前的測試程序:

int main() 
{ 
    char * a ; 
    int i ; 

    for(i = 0; i < 1000000; i++) 
    { 
     a = (char*) malloc(20*sizeof(char)) ; 
     if(a == NULL) printf("NULL\n") ; 
    } 
    //Here I print the system call resulting stats for memory claimed and free memory 
+0

這是內核代碼還是用戶代碼?如果是用戶代碼,你用什麼調用來指定內存分配策略? – 2015-04-03 08:07:14

回答

0

我原來的答覆竟是正確:

char * a ; 
int i ; 

for(i = 0; i < 10000; i++) 
{ 
    a = (char*) malloc(20*sizeof(char)) ; 
    if(a == NULL) printf("NULL\n") ; 
} 

這個簡單的代碼可以用來測試改變邋遢文件如何分配內存(考慮你是內收集統計信息懶惰文件)。