BlogHub
收录
作者
关于
鸟窝
colobu.com
2024
goroutine 调度器揭秘 2
goroutine 调度器揭秘
更强大的 Go 执行跟踪能力
Go 中的高速数据包处理:从 net.Dial 到 AF_XDP
slog 终极指南
实现一个友好的堆
一道面试题: Top K 问题
聊聊 Go 的边界检查消除技术
一些笔记工具工具以及 memos 介绍
Go 语言中的 Pinner.Pin
十亿行的挑战
从慢速到 SIMD: 一个 Go 优化的故事
遍历函数?Go 1.22 中隐藏的功能
Linux 6.8 网络优化, 大量并发连接的 TCP 性能提高 40%左右
高效 I/O 并发处理:双缓冲和 Exchanger
Go 运行时的并发原语
学习 C++20, 为 Go 的 atomic 类型插上一双翅膀
2023
C++中的同步原语
Go http.ServeMux 中的模式匹配
Go 标准库的新 math/rand
从 Go channel 中批量读取数据
“鲜有人了解的同步原语 Phaser,和 Barrier 有啥区别?”
每个 Go 程序员必犯之错
2023 年在地球上举行的 Gopher 大会
卷起来,老程序员也得了解 errors 包的新变化
Go 单线程运行也会有并发问题
更精准的 sleep
这个限流库两个大 bug 存在了半年之久,没人发现?
2023 年 Go 并发库的变化综述
“五年磨一剑:这本 Go 并发的书终于要和大家见面了”
TOP 20 Go 最佳实践
Rust 并发编程番外篇: Mutex 内部实现
iptables 以及 Go 操作库
像 Redis 作者那样,使用 Go 实现一个聊天服务器,不到 100 行代码
如何在 Go 语言中实现 Unix 风格的进程管道?
Rust 并发编程 5 - 基本并发原语
不看就落后了,Go 1.22 中更好的 http router
Rust 并发编程 4 - 容器类并发原语
使用 rust 重写: 和 Go 版本 mping 比较
何时以及如何高效的使用经典的 bpf, 它能到来什么好处?
从头再读取 io.Reader: 覆水难收?
更精准的时延:使用软件时间戳和硬件时间戳
PGO: 为你的 Go 程序提效 5%
使用 Linux tracepoints、perf 和 eBPF 跟踪包的旅程
mping: 使用新的 icmp 库实现探测和压测工具
Go 1.21 中的泛型推断
真实世界的 Go 设计模式 - 对象池模式
真实世界的 Go 设计模式 - 原型模式
原型模式补遗 - Go 语言中的深度拷贝
真实世界的 Go 设计模式 - 单例模式 和 惰性初始化模式
真实世界的 Go 设计模式 - Builder 设计模式
真实世界的 Go 设计模式 - 工厂模式
100 个 Go 编程错误小抄
为什么说并发编程很难?
MPTCP: 一个在 Go 1.21 中的被忽略的新特性
替换标准库的 map 实现,SwissTable 更快?
一个泛型的有序 Go Map 实现
让 sync.Map 支持泛型
sync.Once 的新扩展
你知道吗?Go 新增加了三个内建函数
怎么阻止一个 Go 程序退出?
高性能批量读写网络包 补遗
几种使用 Go 发送 IP 包的方法
ping, 回来后,请告诉我你经过的路由器地址
使用 Go 实现 traceroute 工具
使用 Go 实现 ping 工具
高性能批量读写网络包
使用 AF_XDP Socket 更高效的网络传输
使用底层的 syscall.Socket 实现网络编程
每秒 1 百万的包传输,几乎不耗 CPU 的那种
像闪电一样快速扫描全网的 IP 地址
重构荷兰政府那个非常有效的代码
2022
机智!生抠 map 的哈希函数
没用微服务,Shopify 的单体程序居然支撑了 127 万/秒的请求?
一些关于时间和定时任务的库
零拷贝技术第二篇:Go 语言中的应用
零拷贝技术第一篇:综述
还咋优化?我是说 Go 程序
Rust 并发编程实战课
十多年了,这个最容易犯错的 Go 语法终于要改了
Go CPU profiler 内幕
多年老司机,面对这些 Go 并发问题,也迟疑了
与日俱进,在 Go 1.20 中这种高效转换的方式又变了
一个线程安全的泛型支持 map 库
啊哈,一道有趣的 Go 并发题
爱折腾的 WaitGroup
最近对 rpcx 做的一些优化以及一些优化尝试
2022 Go 生态圈 rpc 框架 Benchmark
Go 垃圾回收器指南
分布式系统设计模式
等等, 怎么使用 SetMemoryLimit?
使用 BPF, 将 Go 网络程序的吞吐提升 8 倍
想学习 k8s 但没有环境?使用 minikube 轻松搭建一个
使用 ebpf 跟踪 rpcx 微服务
atomic 包的新变化
Go 泛型的坏例子
Uber 工程师对真实世界并发问题的研究
最常用的架构模式
经典并发问题: 大型理发店
经典并发问题: 理发店的故事
经典并发问题: 哲学家就餐问题
pyroscope: 一个简单易用的持续剖析平台
面试官提问三个 Go 接口的概念, 10 年 gopher 竟无言以对
编写可维护的 Go 代码
Go 泛型编程: 支持特例化?
Go 泛型编程: interface 不再是那个 interface
[译] go fuzzing
2021
Go 泛型不支持泛型方法,这是一个悲伤的故事
Go 并发编程一年回顾(2021)
Go 泛型系列:再简化,省略接口
[译]更快的时间解析
强制更改 Go 标准库的实现
Go 泛型是怎么实现的?
2021 年 Go 生态圈 rpc 框架 benchmark
[译]更新 Go 内存模型
[译]编程语言内存模型
深入 Go Module 之未说的秘密
[译]硬件内存模型
深入 Go Module 之讨厌的 v2
深入 Go Module 之 go.mod 文件解析
wio terminal 掌机开发板试用报告
实现无限缓存的 channel
Go sync.Once 的三重门
轻轻松松打印网页并生成 pdf 文档
[译]strace 的 10 个命令
rpcx 支持 websocket 协议了!
Go 泛型尝鲜
Go 代码覆盖率工具介绍
利好!极大可能在 go 1.17 中就能尝试泛型
Go embed 简明教程
如何写出内存泄露的程序?
2020
go os/exec 简明教程
Go 运行程序中的线程数
Go 运行时中的 Mutex
分析 Go 程序的 Off-CPU 性能
[译]Go 正则表达式示例
使用 Go 实现 lock-free 的队列
用 Go 撸一个二叉搜索树
Go 并发编程一年回顾
2020 Go 并发库回顾
本地运行 Go 泛型代码
Go 泛型新方案 - 类型参数
Go 反模式之越俎代庖
[译]配置 sql.DB 获得更好的性能(2020 年更新版)
基于 protobuf 快速生成服务治理的 RPC 代码
Redis 6.0 客户端缓存特性及实践
Etcd 使用 go module 的灾难
[译]自定义 Go Json 的序列化方法
理解 Go 接口的实际应用
理解真实世界中 Go 接口的应用
Rust 半小时教程
分布式 ID 生成方案
[译]Go 之禅
[译]构建你自己的 block_on
[译]异步代码中的阻塞操作
2020 新春流行的 RPC 框架性能大比拼
有趣实验: hack go interface
[译]2019 年 Go 读者点击最多的十篇文章
2019
小改动,大提升
谁拔了我的网线?
如何在 Mac 上为 Linux 交叉编译 Rust 程序
[转][译]Linux 网络栈监控和调优:发送数据(2017)
[转][译] Linux 网络栈监控和调优:接收数据(2016)
[译]配置 MySQL 主主复制
妙到颠毫: bigcache 优化技巧
[译]Golang template 小抄
Rust 每周一库: matches!
深入 Libra: 使用 Move 编程语言编写 Libra 模块和脚本
深入 Libra: 搭建本地私有 Libra 网络
深入 Libra: 使用测试网络
Go 1.13 中 sync.Pool 是如何优化的?