
内存分配
文章平均质量分 94
Youth cowboy
专注于系统快稳省领域
展开
-
kswap内存回收机制
kswapd是Linux内核中的一个内核线程(kernel thread),它的主要作用是负责内存回收。具体来说,当系统中的空闲内存低于一定的阈值(watermark)时,kswapd线程被唤醒并开始工作。swapd执⾏内存回收,主要包括两部分内存回收,进程的内存回收和内核内存的回收。进程的内存回收主要回收进程分配的page,例如进程分配的匿名⻚,映射的⽂件⻚、buffer cache等内存;原创 2024-09-29 19:47:57 · 1458 阅读 · 1 评论 -
Linux malloc内存分配实现原理
由于申请的内存没有归还系统,在内存工作繁忙时,频繁的内存分配和释放会造成内存碎片。brk()方式之所以会产生内存碎片,是由于brk通过移动堆顶的位置来分配内存,并且使用完不会立即归还系统,重复使用,如果高地址的内存不释放,低地址的内存是得不到释放的。2)malloc的实参是sizeof(int),用于指明一个整形数据需要的大小,如果我们写成p = (int *)malloc(1), 只是申请了一个字节的空间,如果向里面存放了一个整数的话,将会占用额外的3个字节,可能会改变原有内存空间中的数据。原创 2024-09-04 17:32:12 · 2421 阅读 · 4 评论