3. 总结 优化了一天之后。。。发现我前面写的realloc不够好,如果realloc的块前边也有空闲块的话,也可以合并,于是我就这个思路写了一天。但是最后两组一直no,找了个github的,最后两组也no(看来是数据有问题啊)有bug的代码 不过因为做了这么半天,对malloc这套理论有了更深刻的理解了,所以我也不应该拘泥于此,应该...
CSAPP Lab4 Cache Lab CSAPP Lab4 Cache Lab: Understanding Cache Memories 我的2.3是不是全网能搜到的代码中,miss最少的(雾 https://www.zybuluo.com/SovietPower/note/1795924 参考: https://www.jiansh ... 转置 linux 缓存 #include 赋值 CSAPP Lab3: The Attack Lab CSAPP Lab3: The Attack Lab ...
实验过程中,发现通过在链表中添加空闲块排序功能,可以进一步提升空间利用率。但因实验时间有限,未进行优化。另外,宏定义编写时应避免复杂性,使用括号明确表达意图,避免代码混淆。GDB调试工具在定位和修复代码错误时非常有效,建议在开发中使用。总结实验,C语言中的指针操作灵活但复杂,需谨慎处理。通过合...
本实验主要实现了4个方法: externintmm_init(void);externvoid*mm_malloc(size_tsize);externvoidmm_free(void*ptr);externvoid*mm_realloc(void*ptr,size_tsize); 用于对内存的分配和管理。 这个实验很容易出错,建议多写assert和printf,让问题尽早暴露出来,之后利用GDB进行调试。 实验思路 使用分离的空闲链表就...
需要进一步优化。总结发现,优化malloc实现过程中发现realloc功能存在不足,考虑在realloc中合并前边的空闲块。但最终测试结果未通过,可能是测试数据存在异常或代码存在bug。通过此过程,深入理解了malloc的理论,认识到代码优化的局限性,并意识到应探索更深入的理论和实践,而非拘泥于当前实现。
在CSapp的Malloc Lab实验当中,需要实现自己的动态内存分配函数:malloc、free、realloc。 malloc函数如上图所示。 malloc函数可以基于mmap和munmap函数实现,但是在这个实验中不被允许。也可以基于sbrk函数实现,但是这也不被允许。 动态内存分配器干的是什么活呢?CSapp给我们举了一个例子: ...
Malloc Lab Writing a Dynamic Storage Allocator动态存储分配器 Introduction In this lab you will be writing a dynamic storage allocator for C programs, i.e., your own version of the malloc, free and realloc routines. You are encouraged to explore the design space creatively and implement an allo...