为什么有的库中, 内存申请, 释放等函数要做成可修改的, 比如curl. malloc, realloc这种不是通用的吗?
c Linux 内存管理 libcurl
频繁调用 malloc 会产生内存碎片, 还有内存泄露的风险.
malloc
解决办法就是 内存池 : 事先申请大内存, 自己管理这块内存, 方便调试, 还方便计算用了多少内存.
内存池
比如要检测内存泄露的时候,需要在 malloc 上加记录。
很多库有内存池的实现 普通的malloc就得封装了,标准库的malloc之类实现不一定最佳,所以有jmalloc之类的实现,而且效率更高。标准的malloc写法,除了嵌入式之类的系统都是通用的。基本上C的标准库都需要实现这些。
是不通用的 要么暴露内存申请释放的函数, 由模块中申请内存. 第二种方法就windows上的做法, 内存由用户自己管理, 但是内存的大小可以通过函数查询的. 很多时候windows的API都得很蛋疼的调用两遍的
怎样取子进程的内存使用情况
A进程定位B进程内存空间中特定内存区域被修改时使用的汇编代码
程序运行时需要分配的内存(堆或栈)大小是否会被操作系统所限制?
crash能加载不同于运行内核版本的vmlinx吗?
linux c调试的问题
linux C 语言如何遍历 utf-8字符
学习Linux的几点建议
最先进的战舰也使用Linux