Go 语言高性能编程
目录
-
序言
- 关于本书
-
第一章 性能分析
- benchmark 基准测试
- pprof 性能分析
-
第二章 常用数据结构
- 字符串拼接性能及原理
- 切片(slice)性能及陷阱
- for 和 range 的性能比较
- 反射(reflect)性能
-
第三章 并发编程
- 读写锁和互斥锁的性能比较
- 如何退出协程(超时场景)
-
第四章 编译优化
- 减小编译体积
-
附录 Go 语言陷阱
- 数组和切片
这个系列的由来
我使用 Go 作为主力编程语言已经有一年多的时间了,主要的工作职责是开发一些效率工具,例如分布式编译加速工具。对性能不太敏感的地方,通常会使用 Python,因为 Python 在文本处理上有其他语言不可比拟的优势,而在一些对性能特别敏感的地方,则会选择 Go。Go 语言让我最为推崇的莫过于 Go 的并发,协程加信道,sync 加 select,我觉得很难再有那么一门语言,并发能够做得像 Go 一样简单。
为了加深对 Go 的理解,我尝试去学习一些著名的开源项目,比如分布式缓存 groupcache。知乎上有个问题,“有哪些值得学习的 Go 语言开源项目?”,这个回答下面,groupcache 被提到了不下 3 次。groupcache 代码精炼、功能强大,堪比缓存的瑞士军刀。一个好的项目肯定是备受推崇的,从这些优秀的项目中汲取精华,我觉得是掌握一门语言最快速的方式。因此,我创建了一个项目,叫做 7days-golang,七天用 Go 模仿一个开源项目,希望用 1000 行不到的代码去模仿开源项目中最为精华的部分。这个项目也让我受益匪浅,在这个过程中学习到的一些编程方法和思想,也让我的工作变得有趣了起来。一些优雅的设计和实现,代码量极少,效率又极高。比如一致性哈希,single flight 等等。
通过学习一些著名的开源项目和 Go 的源码,也掌握了很多编程的技巧,知道怎么写才能获得更好的性能。这些技巧是零散的,我一直希望能够将这些技巧系统地整理出来,不断地完善,最终形成一本高性能编程的指南。因此,开启了 Go 语言高性能编程 这个电子书项目。这个项目刚起步,处于一个逐步完善的过程,与各位童鞋共勉。
这本书适合谁?
如果你是 Go 的初学者,建议先阅读 Go 语言简明教程,一篇文章了解 Go 的基础语法。这本书适合使用 Go 作为主力编程语言已经有一段时间,希望进一步提升 Go 编程技巧的童鞋。
推荐和参考
- Go 语言笔试面试题汇总
- 七天用Go从零实现系列
原文地址:Go 语言高性能编程 | 极客兔兔
项目地址:high-performance-go
关注知乎:极客兔兔
Go 语言高性能编程
原文地址:https://www.cnblogs.com/gzdaijie/p/14129738.html