golang
maohuazhu
后台开发工程师,编程爱好者。GitHub:https://github.com/neal-zhu
展开
-
别让 GC 给你的缓存系统拖后腿
golang 是一门自带 GC(垃圾回收) 的语言,GC 帮助程序员从手动管理内存的繁琐工作中解放出来,不仅提升了程序员的生产效率,还保护了程序员的发际线。天下没有免费的午餐,GC 有时候却可能成为你系统性能下降的罪魁祸首,在系统内存负载较大的情况下,对象数量很多的情况下,尤其容易发生。本文介绍一种降低 GC 开销的的优化措施,借鉴自 bigcache,一个优秀的开源 golang 内存缓存库...原创 2020-03-25 20:16:27 · 371 阅读 · 0 评论 -
duplication suppression --- 让你的缓存更聪明
在引入缓存组件的业务体系中,下面代码是很常见的:v = cache.get('key')if v is None: v = fetch_from_db('key') cache.set('key', v)# 本例与语言无关尽管上面代码在单线程代码中工作的很好,但是在多线程、或者多协程服务中则还存在一定的优化空间。考虑如下请求序列:# without duplication v|...原创 2020-02-27 18:21:25 · 314 阅读 · 0 评论 -
golang 并发(1) --- goroutine 泄漏
最近在工作中使用 golang 编程,因为语言内置对并发的支持(go 关键字),所以 golang 越来越受到服务端开发的青睐。今天的文章给大家分享一下 go 并发编程中一个比较隐晦的 bug --- goroutine 泄漏。注意本文不是 golang 语法的科普贴,如果对 golang channel、go、error 等基础语法不了解的话,推荐大家先去看一下 《go 语言圣经》。...原创 2019-05-13 11:07:52 · 1648 阅读 · 0 评论