<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>底层原理 on PlumePHP</title><link>https://plumephp.com/tags/%E5%BA%95%E5%B1%82%E5%8E%9F%E7%90%86/</link><description>Recent content in 底层原理 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/%E5%BA%95%E5%B1%82%E5%8E%9F%E7%90%86/index.xml" rel="self" type="application/rss+xml"/><item><title>Go 垃圾回收器深度解析：三色标记、写屏障与并发回收的完整原理</title><link>https://plumephp.com/112-go-gc-tri-color/</link><pubDate>Thu, 13 Aug 2026 10:00:00 +0800</pubDate><guid>https://plumephp.com/112-go-gc-tri-color/</guid><description>&lt;h2 id="go-gc-的设计目标低延迟并发整堆回收"&gt;Go GC 的设计目标：低延迟、并发、整堆回收&lt;/h2&gt;
&lt;p&gt;Go 的垃圾回收器自诞生以来经历了多次重大演进。从 Go 1.0 的 STW 标记清除、到 Go 1.3 的并行标记、Go 1.5 的并发三色标记、Go 1.8 的亚毫秒 STW，再到 Go 1.21 引入的软内存限制，每一次迭代都将延迟和吞吐量推向更优的平衡点。Go GC 的核心设计目标可以用三个关键词概括：低延迟、并发、整堆回收。低延迟意味着 GC 的停顿时间（STW）必须足够短，不能影响交互式应用的服务质量。并发意味着标记和清除阶段尽可能地与用户代码并行执行，不独占 CPU。整堆回收意味着 GC 会扫描整个堆内存，不依赖于分代假说，虽然在某些场景下效率低于分代 GC，但实现简单且没有跨区域引用的问题。&lt;/p&gt;</description></item><item><title>Go 编译原理深度解析：从 go build 到机器码的完整旅程</title><link>https://plumephp.com/107-go-compiler-principles/</link><pubDate>Thu, 13 Aug 2026 10:00:00 +0800</pubDate><guid>https://plumephp.com/107-go-compiler-principles/</guid><description>&lt;h2 id="go-编译器架构总览"&gt;Go 编译器架构总览&lt;/h2&gt;
&lt;p&gt;Go 语言之所以以编译速度快著称，背后是一套精心设计的编译器架构。与许多传统编译器（如 GCC）将编译过程拆分为多个独立可执行文件不同，Go 的编译器将词法分析、语法分析、类型检查、代码生成等阶段整合在单一的 &lt;code&gt;cmd/compile&lt;/code&gt; 模块中。这种设计减少了进程间通信和文件 I/O 的开销，是 Go 编译速度远快于 C++ 等语言的关键因素之一。&lt;/p&gt;</description></item></channel></rss>