大家好,我是正在学习如何蒸鱼的煎鱼。 在前面 Go1.16 特性介绍的文章中我们有提到,从 v1.16 起,Go 在 Linux 下的默认内存管理策略会从MADV_FREE 改回 MADV_DONTNEED 策略。 这时候可能至少分两拨小伙伴,分别是: 知道是什么,被这个问题 “折磨“ 过的,瞬间眼前一亮。 不知道是什么,出现了各种疑惑了,这说的都是些什么。 灵魂拷问 你有没有以下的疑问,或者是否清楚: 文中所说的 MADV_FREE 是什么? 文中所说的 MADV_DONTNEED 是什么? 为什么特指 Go 语言的 Linux 环境? 为什么是说从 MADV_FREE改回 MADV_DONTNEED? 在今天这篇文章中我们都将进一步的展开和说明,让我们一同来了解这个改来改去的内存机制到底是何物。