【发布时间】:2015-04-01 14:12:15
【问题描述】:
我已经更改了 slob.c,以便它收集最近 100 个小列表分配的统计信息。我进行了必要的编辑以确保正在使用 SLOB。
我正在运行一个测试程序,它在 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
【问题讨论】:
-
这是内核代码还是用户代码?如果是用户代码,你用什么调用来指定内存分配策略?
标签: unix memory-management operating-system malloc heap-memory