coder_learn
只争朝夕,不负韶华!
golang📚:
- 《Go语言编程入门与实战技巧》-黄靖钧
- 《Go语言核心编程》-李文塔
- 《Go编发编程实战》-郝林
- 《Go语言编程》-许式伟
- 《Go程序设计语言》-译本 Go语言圣经
- 《Go语言学习笔记》-雨痕
- 《Go 语言设计与实现》
- 《Go语言高级编程》- 柴树杉,曹春晖
- 《go语言101》
mysql :
- mysql45讲
- mysql必知必会
计算机组成原理:
- 深入理解计算机系统
- 深入浅出计算机组成原理(极客时间)
算法:
- 数据结构与算法之美 (极客时间)
redis:
etcd:
分布式锁:
etcd
redis redlock
consul
- 高可用分布式存储 etcd 的实现原理
- 源码分析golang consul分布式锁lock delay问题
- 分布式一致性raft算法实现原理
- Golang使用redigo实现redis的分布式锁
- [etcd技术内幕]-百里~
内存分配
- 图解Go语言内存分配
- strace分析追踪malloc申请内存过程
- go内存分配那些事,就这么简单
- go内存分配器可视化指南(go语言中文网)
- TCMalloc:Thread-Caching Malloc
- Golang源码探索(三) GC的实现原理
- [第九章 虚拟内存(深入理解计算机系统)]
- 内存分配器
- 栈空间管理
内存泄漏
- 一起 goroutine 泄漏问题的排查
- 实战Go内存泄露
- slice类型内存泄漏的逻辑(曹大)
- 分析golang time.After引起内存暴增OOM问题
- 探究golang的channel和map内存释放问题
连接池
- 使用golang协程池控制并发请求
- golang通用自定义连接池的实现
- 解决golang redis连接池的io异常BUG?
- 深入研究golang net/http连接池可用性
- golang grpc网关使用连接池提吞吐量
channel
锁🔐
- golang多场景下RwMutex和mutex锁性能对比
- golang log日志里为什么需要加锁?
- 通过golang goroutine stack分析死锁问题
- 扩展golang的sync mutex的trylock及islocked
- golang新版如何优化sync.pool锁竞争消耗?
context
map
scheduler
error
pprof
内存重排
unsafe
reflect
slice
逃逸分析:栈与堆
defer
interface
编译-链接-运行
sync
- Golang并发的次优选择:sync包
- golang新版如何优化sync.pool锁竞争消耗?
- go sync.pool []byte导致grpc解包异常
- 扩展go sync.map的length和delete方法
select
make new
time
- 定时器-draveness
- 完全兼容golang定时器的高性能时间轮实现(go-timewheel)
- 源码分析go time.timer和ticker的stop问题
- 分析golang time.After引起内存暴增OOM问题
- 分析golang定时器CPU使用率高的现象
- golang随机time.sleep的Duration问题
函数
array
slice
struct
MPG
gomaxprocs
runtime
grpc
http
Grpc protobuf
database/sql
udp
log
crontab
monkey补丁
redis
- Golang使用redigo实现redis的分布式锁
- Golang使用redis protocol实现pubsub通信
- golang基于redis lua封装的优先级去重队列
- Golang基于redis实现的分布式信号量(semaphore)
- golang redigo lua解决性能问题
粘包