内存管理

2022-11-01T12:01:31+08:00 | 1 minute read | Updated at 2025-07-21T18:42:10+08:00

内存上下文

源码主要在mctx.c中,主要是目的是设置工作空间,避免重复的在系统上申请资源,且为了避免异常情况下的内存泄露问题,所以实现了内存上下文

  • 目前有三种底层的实现
    1. AllocSet(常规的内存分配机制,先分配block,之后再从block上分配chunk,分配得内存一般不会释放,而是使用空闲链表管理)
    2. Generation(新加,内存生命周期相近的时候使用,目前只在gist 和 replication 模块使用)
    3. Slab(分配大小等大的chunk,目前只在replication 模块使用)
  • 更多的是因为频繁的malloc会导致内存碎片,且由于malloc需要额外的空间记录head和foot的位置,所以还存在的问题就是空间的浪费,另外最大的问题是内存泄漏问题,使用指针在方法间传递不容易管理
  • 大概类似c++的内存管理方法,把

© 2016 - 2025 Askyx's Blog

🌱 Powered by Hugo with theme Dream.

About Me

Hi, my name is Yue Yang.

This is my blog.

ヾ(•ω•`)o

比较胆小,出门都得贴墙走