Go 内存分配

内置运行时的语言一般会抛弃传统的内存分配方式,改由自主管理。这样可以完成类似预分配、内存池等操作,避开系统调用带来的性能问题,更好的配合垃圾回收。

内存分配的基本策略:

  1. 每次从操作系统申请一大块内存(如 1MB),以减少系统调用。
  2. 将申请的大块内存预先切分成特定大小的块,构成链表。
  3. 为对象分配内存时,只须从大小合适的链表提取一个小块即可。
  4. 回收对象内存时,将该小块内存归还到原链表,以便复用。
  5. 如果闲置内存过多,则尝试归还部分内存到操作系统,降低整体开销。