Go性能调优

# **优化的方向** CPU占用 内存泄露 GC 频繁触发 协程泄露 锁竞争 阻塞 **衡量指标** CPU、内存、带宽、磁盘、异常率、响应时间(RT)、吞吐量 - 从多个方面着手分析 找到性能短板 - 优化要从整体考虑,尽量在优化一个方面时,不影响其他方面,或是其他方面略微下降。 - 优化的时候要考虑投入产出比 如果本身性能已经没多大优化空间应

- 阅读全文 -

Go sync.Cond

[该文章转载自极客兔: geektutu.com](https://geektutu.com/post/hpg-sync-cond.html "转载自极客兔 geektutu.com") > 源代码/数据集已上传到 [Github - high-performance-go](https://github.com/geektutu/high-performance-go) ![hig

- 阅读全文 -

GO语言-按树形结构打印二叉树

```Go type TreeNode struct { Val int Left, Right *TreeNode } func getTreeDepth(root *TreeNode) int { if root == nil { return 0 } return 1 + int(math.Max(float64(getTreeDepth(

- 阅读全文 -

如何优雅地关闭 channel

[原文: 08 - 如何优雅地关闭 channel](https://qcrao91.gitbook.io/go/channel/ru-he-you-ya-di-guan-bi-channel "原文: 08 - 如何优雅地关闭 channel") 关于 channel 的使用,有几点不方便的地方: - 1.在不改变 channel 自身状态的情况下,无法获知一个 channel

- 阅读全文 -

Go进阶—并发编程 Mutex

[转自:【Go进阶—并发编程】Mutex https://segmentfault.com/a/1190000041467918](https://segmentfault.com/a/1190000041467918 "【Go进阶—并发编程】Mutex") 总结来说,GO语言中mutex的两种模式(正常模式和饥饿模式)的主要区别在于对等待锁的goroutine的优先级处理上: 正常模

- 阅读全文 -