Golang 从入门到放弃 -0x1A

性能分析与 pprof:先找证据,再定位 CPU、内存和等待热点。

很多人第一次碰到性能问题时,第一反应是开始猜。猜数据库慢、猜网络慢、猜 Go GC、猜容器限制、猜云厂商抽风。猜不是完全没用,但如果一直靠猜,效率往往低得惊人。性能排查最重要的,不是直觉,而是证据。

先问一个问题:到底慢在哪

性能问题大体可以先粗暴分三类:

  • CPU 忙不过来
  • 内存压力大
  • I/O、锁、网络、数据库之类的等待太多

连“慢在哪”都没分清,就开始优化,最后很容易把力气花在最不该花的地方。

pprof 先混个脸熟

Go 自带的 pprof 是非常实用的一套分析工具。最常见的接入方式是挂到 HTTP 服务上。

import _ "net/http/pprof"

go func() {
    log.Println(http.ListenAndServe("localhost:6060", nil))
}()

起来之后,就能通过浏览器或命令行抓 profile 了。

看 CPU

go tool pprof http://127.0.0.1:6060/debug/pprof/profile?seconds=30

这个命令会采 30 秒 CPU profile。你最需要关注的,是热点函数到底是谁,而不是凭印象认定“肯定是某个看起来复杂的函数”。

看内存

go tool pprof http://127.0.0.1:6060/debug/pprof/heap

如果你怀疑内存涨得离谱、GC 频繁、对象分配过多,这个就很有帮助。

常见误区

  • 还没测,先上缓存
  • 还没定位,先并发改造
  • 看到某段代码丑,就认定它慢
  • 把压测结果和线上表现混为一谈

优化最怕的不是改不动,而是改了半天,最后证明你在优化错误目标。

性能优化通常从最贵的地方下手

真实项目里,最值钱的优化往往不是把某个小循环省 2ns,而是:

  • 减少无意义的数据库查询
  • 避免重复序列化和反序列化
  • 减少外部接口调用次数
  • 降低锁冲突和串行等待

也就是说,业务层的大头常常比语法层的小聪明更重要。

小结

这一章主要想传达一个思路:

  • 性能排查先找证据,再谈优化。
  • pprof 是 Go 里非常值得掌握的工具。
  • CPU、内存、等待,先分清是哪类问题。
  • 很多最有效的优化,其实发生在业务设计层。

下一章我们开始做整个系列的收束,聊一个小项目到底该怎么拆、怎么落地,而不是只会在脑子里觉得“我懂了”。

Read more

Harness Engineering:从驾驭模型到构建 AI 工厂

Harness Engineering:从驾驭模型到构建 AI 工厂

2026 年,AI 编程工具的竞争焦点发生了根本性转变:决定 AI 助手好不好用的,不再是模型本身,而是包裹在模型外面的那层"Harness"。同一个模型,在不同的 Harness 下,性能差距可以达到 78% vs 42%。 这篇文章将带你深入了解 Harness Engineering——这个正在重新定义 AI 工程实践的新兴领域。 一、什么是 Harness Engineering? Harness 的字面意思是"马具/缰绳"——用来驾驭一匹强壮但不受控的马。在 AI 语境下,Harness 就是 LLM 之外的一切:工具定义、记忆系统、权限模型、反馈循环、文档规范、多

By Fuyu Jia

Claude Code CLI + Ralph:让 AI 自动完成大型编程任务的终极方案

TL;DR 当你的编程任务大到一个 AI 对话窗口装不下时,Ralph 会帮你把任务拆成小块,让 Claude Code CLI 一个接一个地自动完成——每轮都用全新的上下文窗口,不会越写越糊涂。 一、什么是 Ralph? Ralph 是一个开源项目(GitHub 16k+ Stars),基于 Geoffrey Huntley 提出的 "Ralph Pattern" 构建。它的核心理念很简单: 不要让 AI 在一个漫长的会话里做完所有事情,而是把大任务拆成小故事,每个故事用一个全新的 AI 实例来完成。 这解决了 AI 编程中最常见的痛点——上下文窗口耗尽。当对话越来越长,AI 的输出质量会明显下降。Ralph 通过「每轮一个新实例」的方式,

By Fuyu Jia