![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Go
饥渴计科极客杰铿
最讨厌伸手党,而不巧本人也是伸手党
展开
-
Go日记——手写一个资源池
本文转自http://www.flysnow.org/2017/05/01/go-in-action-go-pool.html《Go语言实战》读书笔记,未完待续,欢迎扫码关注公众号flysnow_org或者网站http://www.flysnow.org/,第一时间看后续笔记。觉得有帮助的话,顺手分享到朋友圈吧,感谢支持。这篇文章演示使用有缓冲的通道实现一个资源池,这个资源池可以管理在任意多个go转载 2017-12-08 19:29:50 · 456 阅读 · 0 评论 -
Go日记——反向RPC
背景通常的RPC是基于C/S结构,RPC的服务端对应网络的服务器,RPC的客户端也对应网络客户端。但是对于一些特殊场景,比如在公司内网提供一个RPC服务,但是在外网无法链接到内网的服务器。这种时候我们可以参考类似反向代理的技术,首先从内网主动链接到外网的TCP服务器,然后基于TCP链接向外网提供RPC服务。声明接口type HelloService struct {}func (p *H...转载 2019-01-07 10:46:36 · 2512 阅读 · 9 评论 -
Go日记——morestack与goroutine pool
Go语言的goroutine初始栈大小只有2K,如果运行过程中调用链比较长,超过的这个大小的时候,栈会自动地扩张。这个时候会调用到一个函数runtime.morestack。开一个goroutine本身开销非常小,但是调用morestack进行扩栈的开销是比较大的。想想,如果函数的栈扩张了,有人引用原栈上的对象怎么办?所以morestack的时候,里面的对象都是需要调整位置的,指针都要重定位到新的...转载 2019-01-21 16:01:33 · 694 阅读 · 0 评论 -
Go日记——Go 1.9 sync.Map揭秘
转自https://colobu.com/2017/07/11/dive-into-sync-Map/在Go 1.6之前, 内置的map类型是部分goroutine安全的,并发的读没有问题,并发的写可能有问题。自go 1.6之后, 并发地读写map会报错,这在一些知名的开源库中都存在这个问题,所以go 1.9之前的解决方案是额外绑定一个锁,封装成一个新的struct或者单独使用锁都可以。本文...转载 2019-01-21 17:28:42 · 264 阅读 · 0 评论 -
Go日记——使用pprof和go-torch做性能分析
转自https://www.cnblogs.com/li-peng/p/9391543.html软件开发过程中,项目上线并不是终点。上线后,还要对程序的取样分析运行情况,并重构现有的功能,让程序执行更高效更稳写。 golang的工具包内自带pprof功能,使找出程序中占内存和CPU较多的部分功能方便了不少。加上uber的火焰图,可视化显示,让我们在分析程序时更简单明了。pprof有两个包用来...转载 2019-02-11 15:23:58 · 711 阅读 · 0 评论 -
Go日记——defer的用途
关闭锁/释放资源 l.Lock() defer l.Unlock()恢复错误 defer func() { if r := recover(); r != nil { fmt.Println("Recovered in f", r) } }() panic(2)统计耗时 defer func(begin ...原创 2019-03-27 10:04:38 · 445 阅读 · 0 评论 -
GO日记——fasthttp client为什么快
翻译自 https://weekly-geekly.github.io/articles/443378/index.html我们使用fasthttp的例子编写了一个高性能的http客户端。Alexander Valyalkin(VertaMedia)Fasthttp库是标准Golang软件包中net / http的加速替代品。怎么安排?它为什么这么快?我是Alexander Valyalk...翻译 2019-08-11 10:50:48 · 3647 阅读 · 0 评论 -
Go日记——你想让Go快一点吗?
译自>https://bravenewgeek.com/so-you-wanna-go-fast/编写高性能Go的技巧到目前为止,我已经忘记了我在写什么,但是我保证这篇文章是关于Go的。确实如此,并且很大程度上取决于性能的提高,而不是交付的速度—两者常常彼此矛盾。到目前为止,一切都只是无用的上下文和抱怨。但这也向您表明,我们正在解决一些难题,以及为什么我们要保持现状。总有历史。我和很...翻译 2019-10-08 17:42:05 · 372 阅读 · 0 评论