![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
Willowwww
这个作者很懒,什么都没留下…
展开
-
C++ vs Go
1. 内存管理 C++ C++的内存分配和释放由malloc管理,空闲内存块被保存在链表中,链表的节点信息和空闲块的信息保存在空闲块的开头; 被释放的内存不会马上交还给操作系统,而是按大小加入不同的链表中以便再次分配,fast_bin, small_bin, large_bin; 当链表中和top chunk都找不到或切割出合适的空闲块时,调用brk()(主分配区),或者mmap分配新的一片内存; 每个线程分配内存时,都会锁定一个分配区,以防止不同线程同时分配的冲突; Go 程序启动时会向操作系原创 2020-07-09 22:39:23 · 692 阅读 · 0 评论 -
Linux堆内存管理glibc
1. struct _heap_info, struct malloc_state和struct malloc_chunk typedef struct _heap_info { mstate ar_ptr; /* Arena for this heap. */ struct _heap_info *prev; /* Previous heap. */ si...原创 2020-05-23 14:59:08 · 245 阅读 · 0 评论