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 评论