发现一个非常不错的性能优化的视频

How to optimize Go for really high performance - by Björn Rabenstein

https://www.youtube.com/watch?v=ZuQcbqYK0BY

已邀请:

要点简单小结:

1) Don't use Go, use Assembly --> NO. 2) Don't use Go, use C/C++ --> NO. Go 1.4 的编译速度非常快,后因编译器开始自举,编译速度下降不少,但一直在改进 3) CGO --> 应审慎地通过 CGO 来使用经由 C/C++ 高度优化过的代码库(如加解密算法),且每次 CGO 调用约有 150ns 的额外开销 4) Go 的编译器优化水准一直在提升,通常来说,新版本的 Go 能生成更优化的机器码 5) 在 Go 中作 Benchmark 非常容易,能用它来很方便地分析 CPU 及内存分配等性能热点 6) pprof 是很实用的性能剖析工具 7) Go 的 GC 实现一直在改进,而且改进明显 8) 不应在循环里作频繁的内存分配等工作 --> 耗时且加重 GC 负担,可善用 bytes.Buffer 和 sync.Pool 等设施 9) 避免内存碎片 --> 逃逸分析对性能的影响 10) 锁本身并不慢,慢的是竞争 --> sync/atomic 在某些场合是好东西 11) hashmap 查找虽快(O(1) 的时间复杂度),但元素数量对查找速度有明显影响 --> map 的初始容量、粒度问题

liushuchun

赞同来自:

多谢分享。

huhuyou2 - fish

赞同来自:

mark

yet

赞同来自:

mark

orangleliu - 我爱数据库,但是不怎么会

赞同来自:

mark

tangmo

赞同来自:

mark

lvpengzhen

赞同来自:

mark

domac - life should be func

赞同来自:

mark

要回复问题请先登录注册