Go标准库http与fasthttp服务端性能比较
本文永久链接 – https://tonybai.com/2021/04/25/server-side-performance-nethttp-vs-fasthttp 1. 背景 Go初学者学习Go时,在编写了经典的“hello, world”程序之后,可能会迫不及待的体验一下Go强大的标准库,比如:用几行代码写一个像下面示例这样拥有完整功能的web server: //...
View Articleminikube v1.20.0版本的一个bug
本文永久链接 – https://tonybai.com/2021/05/14/a-bug-of-minikube-1-20 近期在研究dapr(分布式应用运行时),这是一个很朴素却很棒的想法,目前大厂,如阿里和鹅厂都有大牛在研究该项目,甚至是利用dapr落地了部分应用。关于dapr,后续我也会用单独的文章详细说说。...
View Article通过实例理解Go逃逸分析
本文永久链接 – https://tonybai.com/2021/05/24/understand-go-escape-analysis-by-example 翻看了一下自己的Go文章归档,发现自己从未专门写过有关Go逃逸分析(escape...
View Article使用functrace辅助进行Go项目源码分析
本文永久链接 – https://tonybai.com/2021/06/04/go-source-analysis-with-functrace...
View Article通过实例理解Go Execution Tracer
本文永久链接 – https://tonybai.com/2021/06/28/understand-go-execution-tracer-by-example Netflix(奈飞公司)的性能架构师Brendan Gregg在其《BPF Performance...
View Article使用go-metrics在Go应用中增加度量
本文永久链接 – https://tonybai.com/2021/07/06/add-metrics-for-go-application-using-go-metrics...
View Article使用section.key的形式读取ini配置项
本文永久链接 – https://tonybai.com/2021/07/10/read-ini-config-item-by-passing-section-key...
View Article一文告诉你如何用好uber开源的zap日志库
本文永久链接 – https://tonybai.com/2021/07/14/uber-zap-advanced-usage 1. 引子 日志在后端系统中有着重要的地位,通过日志不仅可以直观看到程序的当前运行状态,更重要的是日志可以在程序发生问题时为开发人员提供线索。...
View Article一文搞懂Go语言的plugin
本文永久链接 – https://tonybai.com/2021/07/19/understand-go-plugin 要历数Go语言中还有哪些我还没用过的特性,在Go 1.8版本中引入的go plugin算一个。近期想给一个网关类平台设计一个插件系统,于是想起了go plugin^_^。 Go...
View ArticleGo经典阻塞式TCP协议流解析的实践
本文永久链接 – https://tonybai.com/2021/07/28/classic-blocking-network-tcp-stream-protocol-parsing-practice-in-go 1. Go经典阻塞I/O的TCP网络编程模型...
View Article二闺女一周岁了
本文永久链接 – https://tonybai.com/2021/07/23/my-second-daughter-is-one-year-old 时光飞逝 – 这是我在写这类记录孩子成长的文章时最喜欢用的一个词,也是最能体现我真实感受的一个词。一年前的今天,二闺女非常痛快地呱呱坠地,当时刚出生的她是这样的: 而一年后的今天,现在的她是这样: 这样: 以及这样:...
View ArticleGo基于I/O多路复用的TCP协议流解析实践
本文永久链接 – https://tonybai.com/2021/07/31/io-multiplexing-model-tcp-stream-protocol-parsing-practice-in-go...
View ArticleGo中被闭包捕获的变量何时会被回收
本文永久链接 – https://tonybai.com/2021/08/09/when-variables-captured-by-closures-are-recycled-in-go 1. Go函数闭包 Go语言原生提供了对闭包(closure)的支持。在Go语言中,闭包就是函数字面值。Go规范中是这样诠释闭包的: 函数字面值(function...
View Article一文告诉你如何帮助测试Go语言Beta公测版或RC候选发布版
本文永久链接 – https://tonybai.com/2021/08/11/how-to-test-go-beta-or-rc Go 1.17已经发布到RC2版本!正式版最早将在8月中旬发布,最迟也不会晚于月底。对于喜欢尝鲜的Gopher而言,在体验Go...
View ArticleGo 1.17中值得关注的几个变化
本文永久链接 – https://tonybai.com/2021/08/17/some-changes-in-go-1-17 Go核心开发团队在去年GopherCon大会上给Go泛型的定调是在2022年2月份的Go 1.18版本中发布,那可是自Go诞生以来语法规范变动最大的一次,这让包括笔者在内的全世界的Gopher们都满怀期待。 不过别忘了,在Go...
View ArticleGo 1.17新特性详解:支持将切片转换为数组指针
本文永久链接 – https://tonybai.com/2021/08/18/go-language-specs-changes-in-go-1-17...
View ArticleGo 1.17新特性详解:module依赖图修剪与延迟module加载
本文永久链接 – https://tonybai.com/2021/08/19/go-module-changes-in-go-1-17 Go module的引入终于让Go语言有了自己的包依赖管理标准机制与工具,虽说它的引入与推广过程略显坎坷,但不得不承认Go 1.11及之后的每一次Go版本发布,Go module都在进步!在Go 1.17版本中亦是如此,本篇我们就来详细聊聊在Go...
View ArticleGo 1.17新特性详解:使用基于寄存器的调用惯例
本文永久链接 – https://tonybai.com/2021/08/20/using-register-based-calling-convention-in-go-1-17 除了Go语言特性与go module有重要变化之外,Go编译器与Go运行时也都有着优化与改进,这两方面的变化对Go程序的构建与运行影响巨大。在这个系列的最后一篇中,我们来看看编译器与运行时中那些值得关注的变化。 1....
View ArticleBrooks、Wirth和Go[译]
本文永久链接 – https://tonybai.com/2021/08/25/brooks-wirth-and-go 本文翻译自瑞典程序员Fredrik Holmqvist的博客文章《Brooks, Wirth and Go》。 现在是1975年。 程序员们带着FORTRAN代码回来了,不过使用的是穿孔卡片的形式。 图:记录代码的穿孔卡片(图片来自punchcardreader.com,译者加)...
View Article小厂内部私有Go module拉取方案
本文永久链接 – https://tonybai.com/2021/09/03/the-approach-to-go-get-private-go-module-in-house 1. 问题来由 Go 1.11版本引入Go module后,Go命令拉取依赖的公共go module不再是“痛点”。如下图所示: 图:从公司内部经由公共GOPROXY服务拉取公共go module...
View Article