<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Mheap on PlumePHP</title><link>https://plumephp.com/tags/mheap/</link><description>Recent content in Mheap on PlumePHP</description><generator>Hugo</generator><language>zh-CN</language><lastBuildDate>Thu, 13 Aug 2026 10:00:00 +0800</lastBuildDate><atom:link href="https://plumephp.com/tags/mheap/index.xml" rel="self" type="application/rss+xml"/><item><title>Go 内存分配器深度解析：mcache、mcentral、mheap 三级架构与源码剖析</title><link>https://plumephp.com/122-go-runtime-malloc/</link><pubDate>Thu, 13 Aug 2026 10:00:00 +0800</pubDate><guid>https://plumephp.com/122-go-runtime-malloc/</guid><description>&lt;h2 id="引言为什么-go-需要自定义内存分配器"&gt;引言：为什么 Go 需要自定义内存分配器&lt;/h2&gt;
&lt;p&gt;如果你写过 C 语言，一定对 &lt;code&gt;malloc&lt;/code&gt; 和 &lt;code&gt;free&lt;/code&gt; 的繁琐与陷阱深有体会。内存泄漏、野指针、双重释放——这些问题构成了 C 程序员职业生涯中挥之不去的阴影。Go 语言通过垃圾回收（GC）机制将这些苦难从开发者手中接管了过来，但在运行时内部，内存分配仍然是一个需要精心设计的核心问题。Go 为什么不直接使用 glibc 的 &lt;code&gt;malloc&lt;/code&gt;，而要自己从零写一个复杂的内存分配器？答案藏在三个简单的数字里：&lt;strong&gt;并发、性能和碎片&lt;/strong&gt;。&lt;/p&gt;</description></item></channel></rss>