内存对其了解吗?
参考解析
题目来源:知乎
答案:
go语言的内存分配是基于tcmalloc模型的.
go语言跟大多数内置运行时(runtime)的编程语言一样,抛弃传统内存分配的方式,改为自己管理。这样可以完成类似预分配、内存池等操作,以闭开系统调用带来的性能问题,防止每次分配内存都需要系统调用。
go的内存分配的核心思想分为以下几点:
每次从操作系统申请一大块内存,由go来对这块内存做分配,减少系统调用。
内存分配算法采用Google的TCMalloc算法。
回收对象内存时,并没有将其真正地释放掉,只是放回预先分配的大块内存中,以便复用。只有内存闲置过多的时候,才会尝试归还部分内存给操作系统,整体降低开销。