Posts List

Golang Gc & Memory Allocation

关于 Golang GC 和内存管理相关的流程和原理的一些总结。

Collection 4

golang GC & 内存管理

Golang Websocket Message Pushing

使用 golang 的 websocket 框架 melody,实现通用的消息分组推送服务。针对同一推送对象,只起一个后端协程进行广播推送,减少资源消耗,并提供监控接口查询当前的协程和websocket连接。

Collection 3

golang GC

Go Concurrency

go 语言相比其他语言的一大优势,就是便捷,高效的并发代码的编写。本文具体介绍 go 语言的并发机制和使用 go 语言作并发编程的方法。

The Go Memory Model

[译]https://golang.google.cn/ref/mem Go内存模型指定了一个条件,在该条件下,可以保证在一个 goroutine 中读取变量,能够获取到另一个不同 goroutine 写入同一变量产生的值。

Golang Data Race Detector

[译] https://golang.google.cn/doc/articles/race_detector.html golang 中的几种 Data Race 场景及 Data Race 检测工具。

Golang Mutex

golang 的sync包中有两种锁,互斥锁sync.Mutex 和读写锁sync.RWMutex。

Awesome Post Collection 2

goroutine 调度器。 Golang for range性能分析及优化。 一致性哈希算法。 ETCD的一些使用场景及原理分析。

Goroutine 的管理

goroutine 是 go 的最重要特性之一,可以方便的实现并发编程。但是真正用起来,如果不多加注意,很容易造成 goroutine 的泄漏或者脱离管理,造成代码跑一段时间,就是产生大量无法回收的goroutine(可通过 pprof 查看)。最近学习整理了下 go 语言中管理 goroutine 的几种方法和一些最佳实践。