Go性能调优
# **优化的方向** CPU占用 内存泄露 GC 频繁触发 协程泄露 锁竞争 阻塞 **衡量指标** CPU、内存、带宽、磁盘、异常率、响应时间(RT)、吞吐量 - 从多个方面着手分析 找到性能短板 - 优化要从整体考虑,尽量在优化一个方面时,不影响其他方面,或是其他方面略微下降。 - 优化的时候要考虑投入产出比 如果本身性能已经没多大优化空间应
# **优化的方向** CPU占用 内存泄露 GC 频繁触发 协程泄露 锁竞争 阻塞 **衡量指标** CPU、内存、带宽、磁盘、异常率、响应时间(RT)、吞吐量 - 从多个方面着手分析 找到性能短板 - 优化要从整体考虑,尽量在优化一个方面时,不影响其他方面,或是其他方面略微下降。 - 优化的时候要考虑投入产出比 如果本身性能已经没多大优化空间应
[该文章转载自极客兔: 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 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(
[原文: 08 - 如何优雅地关闭 channel](https://qcrao91.gitbook.io/go/channel/ru-he-you-ya-di-guan-bi-channel "原文: 08 - 如何优雅地关闭 channel") 关于 channel 的使用,有几点不方便的地方: - 1.在不改变 channel 自身状态的情况下,无法获知一个 channel
[转自:【Go进阶—并发编程】Mutex https://segmentfault.com/a/1190000041467918](https://segmentfault.com/a/1190000041467918 "【Go进阶—并发编程】Mutex") 总结来说,GO语言中mutex的两种模式(正常模式和饥饿模式)的主要区别在于对等待锁的goroutine的优先级处理上: 正常模