作为 go 开发者,我们可能忽略了一名英雄:在内存垃圾标记之后,拾荒器 (scavenging) 最终负责把无用内存归还给操作系统。本文结合例子和源码,分析 go scavenging 的策略,为内存关键型程序提供一些小建议。

2023年12月19日 1条评论 4514点热度 1人点赞 SPtuan 阅读全文

限流器是服务治理的重要一环。但常见的讨论集中于对 频率 的限制。本文结合笔者最近的需求,分析 Go 官方限流器 time/rate 的实现原理,结合实践对 带宽/流量限制 可能遇到的问题进行讨论。

2023年8月13日 0条评论 5976点热度 1人点赞 SPtuan 阅读全文

近一个月从底层翻阅了 Apache Traffic Server 的磁盘缓存引擎,俞发觉得精妙。另外自己在开发的 web 代理缓存 hitori 中,也确实需要一款大容量磁盘缓存引擎。便实现了一个磁盘缓存引擎库,名字叫做 bakemono。

2023年4月26日 0条评论 3856点热度 0人点赞 SPtuan 阅读全文

100 Go Mistakes and How to Avoid Them 阅读笔记。4-Control Structures, 6-Functions and Methods, 7-Error Management

2023年1月18日 0条评论 2892点热度 0人点赞 SPtuan 阅读全文

100 Go Mistakes and How to Avoid Them 一书主要描述了使用 Go 语言编程时的常见问题。本文是博主对第三章 - 数据类型 Data type 的阅读笔记。

2022年12月22日 0条评论 2738点热度 0人点赞 SPtuan 阅读全文

100 Go Mistakes and How to Avoid Them 一书主要描述了使用 Go 语言编程时的常见问题。本文是博主对第二章 - Code and project organization 的阅读笔记。

2022年12月17日 0条评论 3335点热度 1人点赞 SPtuan 阅读全文

平常我们在做应用层开发时,很少会注意到 HTTP 请求的大小写敏感问题。笔者在围观一个 HTTP 服务端 Header 的解析程序时,发现了一个微妙的 bug。这篇笔记是针对该问题的一个有趣的探究。

2022年12月7日 0条评论 8280点热度 2人点赞 SPtuan 阅读全文

Unix-like 操作系统中,程序的 stderr、exit status,以及 Go 语言如何捕捉命令执行错误实例。

2022年7月31日 1条评论 4237点热度 0人点赞 SPtuan 阅读全文

Hi,博客文章索引在这里~

2020年3月5日 4条评论 10979点热度 44人点赞 SPtuan 阅读全文