<?xml version="1.0" encoding="UTF-8"?> <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"> <channel> <title>文先生的博客</title> <description>文先生的技术博客，分享 C/C++、Go、Redis、Linux、网络编程、服务端开发与源码分析的实践经验。</description> <link>https://wenfh2020.com/</link> <atom:link href="https://wenfh2020.com/feed.xml" rel="self" type="application/rss+xml"/> <pubDate>Wed, 21 Oct 2026 05:38:33 +0800</pubDate> <lastBuildDate>Wed, 21 Oct 2026 05:38:33 +0800</lastBuildDate> <generator>Jekyll v4.0.1</generator> <item> <title>开发个人知识库 Fluid-Wiki</title> <description>这些年的笔记，积得着实不少。倘要分类，大抵有三： &lt;ol&gt; &lt;li&gt; 见着好的东西，便如获至宝，随手存下； &lt;/li&gt; &lt;li&gt; 在公司做事时，零零碎碎记下的种种； &lt;/li&gt; &lt;li&gt; 自己研发的一点心得，写着写着，竟成了如今的博客。 &lt;/li&gt; &lt;/ol&gt; 那些存下的与公司里的，如今大半蒙了灰，静静躺在角落，再没人去理会，颇像小时候攒下的糖纸和玻璃弹子——攒时爱如性命，转眼便忘在抽屉的最深处了。独有博客里的，倒还时常翻一翻，改一改，像常来常往的老友。同是资料文字，境遇竟这样不同，我起初也着实不解。 这些原是些零散的「机械知识」，各自为政，如一盘散沙，谁也不认得谁。我便动了个念头：何不寻个知识库，将它们好生收拢起来呢？于是下载了黑曜石（Obsidian）来试，摆弄了半日，终觉不甚趁手——与其低头去顺别人的规矩，不如自己动手造一个（&lt;a href=&quot;https://fluidwiki.com/zh/&quot;&gt;Fluid Wiki&lt;/a&gt;）：拣些顶要紧、顶常用的功能来做，往后要怎样摆弄，便都由得我了。 &lt;blockquote&gt; 文章内容让 AI 使用鲁迅语调润色了一下，看着还怪有意思的 ^_^！ &lt;/blockquote&gt; </description> <pubDate>Mon, 27 Jul 2026 00:00:00 +0800</pubDate> <link>https://wenfh2020.com/2026/07/27/fluid-wiki/</link> <guid isPermaLink="true">https://wenfh2020.com/2026/07/27/fluid-wiki/</guid> <category>golang</category> <category>AI</category> <category>知识库</category> <category>Claude-code</category> <category>科技</category> </item> <item> <title>[Go] Go 长连接服务的三种读写并发模型</title> <description>最近维护了几个 Go 后台系统，涉及到几种长连接 websocket 读写并发模型，简单回顾和归纳一下： &lt;ol&gt; &lt;li&gt;单读协程 + 加锁直写：每连接 1 个 goroutine，写通过锁串行化。&lt;/li&gt; &lt;li&gt;读写双协程 + channel：每连接 2 个 goroutine，写收敛到单协程，天然带背压。&lt;/li&gt; &lt;li&gt;事件驱动（gnet / reactor）：没有 “每连接协程”，少量 event-loop 用 epoll 管全部连接。&lt;/li&gt; &lt;/ol&gt; </description> <pubDate>Thu, 25 Jun 2026 00:00:00 +0800</pubDate> <link>https://wenfh2020.com/2026/06/25/go-longconn-concurrency-models/</link> <guid isPermaLink="true">https://wenfh2020.com/2026/06/25/go-longconn-concurrency-models/</guid> <category>golang</category> <category>websocket</category> <category>Go</category> <category>network</category> <category>协程</category> </item> <item> <title>初体验 Claude code</title> <description>&lt;a href=&quot;https://code.claude.com/docs/zh-CN/overview&quot;&gt;Claude code&lt;/a&gt; 神器啊！基于 “先问后做” 原则，用它做项目，快一个月几乎没有手动写过代码。从业多年，曾无数次想象过行业的发展，就是未曾想到过，编程工具如今发展到如此智能的地步，感觉 AI 已经快速走在解放人类双手的路上了。 尽管 AI 发展迅速，它也会像人一样犯错：修复一个 bug，却引入几个新 bug，但是只要你输入的需求文档思路清晰，实现步骤有条理，阐述逻辑严谨，cc 就会实现得非常好。 cc 支持接入不同厂商的大模型，而模型之间的解决问题能力往往天差地别。所以条件允许的话，请务必选用最好的大模型，最好的大模型，最好的大模型 …… 重要的事情说三遍！！！ &lt;blockquote&gt; Claude code（后面简称 cc） &lt;/blockquote&gt; </description> <pubDate>Sun, 22 Mar 2026 00:00:00 +0800</pubDate> <link>https://wenfh2020.com/2026/03/22/claude-code-experience/</link> <guid isPermaLink="true">https://wenfh2020.com/2026/03/22/claude-code-experience/</guid> <category>claude</category> <category>科技</category> </item> <item> <title>[go] pprof 定位 gnet 项目内存泄漏</title> <description>项目是一个基于 gnet 的事件驱动长连接网关，核心网络模型是 reactor + epoll，少量 event-loop 管理大量连接。 用户在不断增长过程中，出现了内存占用持续异常上涨现象。 为了定位和修复，给服务增加了 pprof 端口（6060），通过 heap profile 对比分析，锁定了泄漏源头。 再由 pprof 数据反查业务代码，定位到 gnet 的 &lt;code class=&quot;highlighter-rouge&quot;&gt;Peek()&lt;/code&gt; / &lt;code class=&quot;highlighter-rouge&quot;&gt;Next()&lt;/code&gt; / &lt;code class=&quot;highlighter-rouge&quot;&gt;Discard()&lt;/code&gt; API 使用不当，最终彻底修复。 </description> <pubDate>Fri, 06 Mar 2026 00:00:00 +0800</pubDate> <link>https://wenfh2020.com/2026/03/06/go-memory-leak/</link> <guid isPermaLink="true">https://wenfh2020.com/2026/03/06/go-memory-leak/</guid> <category>golang</category> <category>pprof</category> <category>gnet</category> <category>Go</category> <category>gnet</category> </item> <item> <title>[network] 记一次网站网络流量优化</title> <description>近期将博客迁移至阿里云 Docker 环境后，网站出现流量异常问题。 经排查，瓶颈主要集中于图片资源与服务端缓存配置。通过一系列针对性优化，页面首次加载流量由 7 MB 显著优化至 500KB 左右，性能得到大幅提升。 </description> <pubDate>Fri, 31 Oct 2025 00:00:00 +0800</pubDate> <link>https://wenfh2020.com/2025/10/31/web-network-traffic-optimization/</link> <guid isPermaLink="true">https://wenfh2020.com/2025/10/31/web-network-traffic-optimization/</guid> <category>web</category> <category>network</category> </item> <item> <title>[内核源码] 浅析 CFS 完全公平调度器工作原理</title> <description>本文结合 &lt;a href=&quot;https://github.com/wenfh2020/linux-5.0.1&quot;&gt;Linux 5.0.1&lt;/a&gt; 内核源码，浅析 Linux 进程管理中的完全公平调度器（CFS）工作原理。 </description> <pubDate>Fri, 10 Oct 2025 00:00:00 +0800</pubDate> <link>https://wenfh2020.com/2025/10/10/kernel-schedule/</link> <guid isPermaLink="true">https://wenfh2020.com/2025/10/10/kernel-schedule/</guid> <category>CFS</category> <category>内核</category> </item> <item> <title>[C++] 提高 C++ 项目编译速度的神兵利器</title> <description>最近接手的一个 Linux C++ 项目，编译速度把我折腾得怀疑人生。 —— 编译经过优化，源代码一行未改，全编译时间硬是从 半个小时 缩短到 &lt;code class=&quot;highlighter-rouge&quot;&gt;3 分钟&lt;/code&gt; ！！！（OMG，此处省略一万字…） 划重点，三板斧： &lt;ol&gt; &lt;li&gt;多核并行编译： make -j N&lt;/li&gt; &lt;li&gt;编译缓存工具： &lt;a href=&quot;https://wenfh2020.com/2017/12/06/cpp-ccache/&quot;&gt;ccache&lt;/a&gt;&lt;/li&gt; &lt;li&gt;分布式编译工具：&lt;a href=&quot;https://www.distcc.org/&quot;&gt;distcc&lt;/a&gt;&lt;/li&gt; &lt;/ol&gt; </description> <pubDate>Mon, 25 Nov 2024 00:00:00 +0800</pubDate> <link>https://wenfh2020.com/2024/11/25/cpp-build-tools/</link> <guid isPermaLink="true">https://wenfh2020.com/2024/11/25/cpp-build-tools/</guid> <category>c/c++</category> </item> <item> <title>[C++] Google Authenticator 算法实现</title> <description>&lt;code class=&quot;highlighter-rouge&quot;&gt;谷歌验证码&lt;/code&gt; 采用基于共享密钥的动态验证机制。服务端与客户端使用相同的密钥，并据此分别生成匹配的动态验证码以完成校验。 尽管共享密钥本身并非绝对安全，但由于它仅在初次设置时低频次传输，且作为二次验证使用，因此仍能为核心账户安全提供一道坚实有效的屏障。 </description> <pubDate>Tue, 15 Oct 2024 00:00:00 +0800</pubDate> <link>https://wenfh2020.com/2024/10/15/cpp-google-authenticator/</link> <guid isPermaLink="true">https://wenfh2020.com/2024/10/15/cpp-google-authenticator/</guid> <category>c/c++</category> </item> <item> <title>[C++] 使用时间轮实现对象的操作频率限制</title> <description>需求：限制用户一段时间内的发包数量。 实现：想了不少方案，最终决定使用 &lt;code class=&quot;highlighter-rouge&quot;&gt;时间轮&lt;/code&gt; 实现。 </description> <pubDate>Thu, 22 Aug 2024 00:00:00 +0800</pubDate> <link>https://wenfh2020.com/2024/08/22/cpp-time-wheel-limit/</link> <guid isPermaLink="true">https://wenfh2020.com/2024/08/22/cpp-time-wheel-limit/</guid> <category>c/c++</category> </item> <item> <title>[随笔] 最好的编程语言</title> <description>ChatGPT 横空出世，让我重新思考：什么才是最好的编程语言。 现在流行的编程语言有：PHP / JAVA / C / C++ / C# / Python / Rust / GO（排名不分先后），谁才是最好的？ </description> <pubDate>Sat, 20 Apr 2024 00:00:00 +0800</pubDate> <link>https://wenfh2020.com/2024/04/20/best-language/</link> <guid isPermaLink="true">https://wenfh2020.com/2024/04/20/best-language/</guid> <category>随笔</category> </item> </channel> </rss>