Go 语言高性能编程
目录
序言
- 关于本书
第一章 性能分析
- benchmark 基准测试
- pprof 性能分析
第二章 常用数据结构
- 字符串拼接性能及原理
- 切片(slice)性能及陷阱
- for 和 range 的性能比较
- 反射(reflect)性能
- 使用空结构体节省内存
- 内存对齐对性能的影响
第三章 并发编程
- 读写锁和互斥锁的性能比较
- 如何退出协程(超时场景)
- 如何退出协程(其他场景)
- 控制协程的并发数量
第四章 编译优化
- 减小编译体积
附录 Go 语言陷阱
- 数组和切片
基础入门
- Go 语言简明教程
- Go Test 单元测试简明教程
- Go Protobuf 简明教程
- Go RPC & TLS 鉴权简明教程
- Go Mock (gomock)简明教程
- Go Mmap 文件内存映射简明教程
- Go Context 并发编程简明教程
- Go WebAssembly (Wasm) 简明教程
- Go Gin 简明教程
进阶系列
- 七天用Go从零实现系列
- Web框架Gee
- 分布式缓存GeeCache
- ORM框架GeeORM
- RPC框架GeeRPC
- 项目地址
- 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 语言高性能编程相关推荐
- 面试指南|GO高性能编程精华PDF
原文:https://dablelv.blog.csdn.net/article/details/122281882 代码的稳健.可读和高效是我们每一个 coder 的共同追求,本文将结合 Go 语言 ...
- Go 高性能编程技法
作者:dablelv,腾讯 IEGggG 后台开发工程师 代码的稳健.可读和高效是我们每一个 coder 的共同追求.本文将结合 Go 语言特性,为书写效率更高的代码,从常用数据结构.内存管理和并发, ...
- Go 高性能编程心法探秘
万字长文,耐心阅读 目录 常用数据结构 1.反射虽好,切莫贪杯 2.避免重复的字符串到字节切片的转换 3.指定容器容量 4.字符串拼接方式的选择 4.1 行内拼接字符串推荐使用运算符+ 4.2 非行内 ...
- phi函数C语言,Intel Xeon Phi协处理器高性能编程指南 第1章.DOC
Intel Xeon Phi协处理器高性能编程指南 第1章.DOC PAGE 18 第1章 绪论 STYLEREF \l "标题 2" \* MERGEFORMAT 1.15 超线 ...
- Java专家系列:CPU Cache与高性能编程
认识CPU Cache CPU Cache概述 随着CPU的频率不断提升,而内存的访问速度却没有质的突破,为了弥补访问内存的速度慢,充分发挥CPU的计算资源,提高CPU整体吞吐量,在CPU与内存之间引 ...
- Go语言开发(九)、Go语言并发编程
Go语言开发(九).Go语言并发编程 一.goroutine简介 1.并发与并行简介 并行(parallel):指在同一时刻,有多条指令在多个处理器上同时执行. 并发(concurrency):指在同 ...
- python微控制器编程pdf_Python高性能编程 中文高清pdf完整版[17MB]
Python语言是一种脚本语言,其应用领域非常广泛,包括数据分析.自然语言处理.机器学习.科学计算.推荐系统构建等.Python高性能编程共有12章,围绕如何进行代码优化和加快实际应用的运行速度进行详 ...
- Go云原生高性能编程技法,值得观看
代码的稳健.可读和高效是我们每一个 coder 的共同追求.本文将结合 Go 语言特性,为书写效率更高的代码,从常用数据结构.内存管理和并发,三个方面给出相关建议.话不多说,让我们一起学习 Go 高性 ...
- .NET高性能编程 - C#如何安全、高效地玩转任何种类的内存之Memory(三)
前言 我们都知道,.Net Core是微软推出的一个通用开发平台,它是跨平台和开源的,由一个.NET运行时.一组可重用的框架库.一组SDK工具和语言编译器组成,旨在让.Net developers可以 ...
- Computer:少儿编程—每个人都应该学习编程,它能教你如何思考—编程入门的简介(编程语言的特点种类开发工具对比人类语言)、编程应用、编程意义之详细攻略
Computer:少儿编程-每个人都应该学习编程,它能教你如何思考-编程入门的简介(编程语言的特点&种类&开发工具&对比人类语言).编程应用.编程意义之详细攻略 导读:乔布斯说 ...
最新文章
- IntelliJ IDEA 2019从入门到癫狂 图文教程!
- 谁是全球最顶级AI实验室?DeepMind、OpenAI和FAIR霸榜前三
- 向日葵win10远程linux主机,大神为你细说win10系统使用向日葵远程桌面软件远程的操作办法...
- linux内核实验平台搭建,搭建自己的Linux实验系统(一)
- 五种最易被老板开除的人
- 最优乘车(Floyd)
- mysql游标进阶_MYSQL进阶学习知识拓展一:MySQL 存储过程之游标!
- 使用FlyMcu.exe中出现的问题
- android退出中国,曾经的安卓机皇宣布关闭中国社区,彻底放弃手机业务了?
- 为什么有的计算机没有ppt,电脑上没有ppt怎么办
- 一些思考:腾讯股价为何持续都低
- 无盘 电影服务器,网吧电影服务器解决方案完全攻略指南
- 仿知乎的问答社区PHP系统+支持响应式/打赏功能
- matlab-线性代数 det 各阶主子式、余子式、代数余子式
- 为什么图片反复压缩后会普遍会变绿而不是其他颜色?
- doris ODBC 连接 mysql 外部表
- mmclassification
- SS00007.algorithm——|ArithmeticMachine.v07|——|Machine:监督学习算法.v06|
- Atitit 关于共享经济之共享男女朋友的创业计划
- kubernetes1.22安装使用ingress-nginx
热门文章
- Dart教程(三):类的定义和使用
- linux: 空指令(:)
- duilib中各控件响应的消息类型
- SharePoint 2007 图片库视图不可用、页面标题不显示
- Linux多线程编程详细解析----条件变量 pthread_cond_t
- 转:Apache2 httpd.conf 中文版
- 算法工程师必备技能(Python 优化提速小技巧)
- php设置上传文件浏览按钮的样式和文字,文件上传按钮的用户自定义样式的实现...
- vs2013 win10 Caffe的编译安装(微软版本)
- linux strace 命令参数