目录

  • 序言

    • 关于本书
  • 第一章 性能分析

    • 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 语言高性能编程相关推荐

  1. 面试指南|GO高性能编程精华PDF

    原文:https://dablelv.blog.csdn.net/article/details/122281882 代码的稳健.可读和高效是我们每一个 coder 的共同追求,本文将结合 Go 语言 ...

  2. Go 高性能编程技法

    作者:dablelv,腾讯 IEGggG 后台开发工程师 代码的稳健.可读和高效是我们每一个 coder 的共同追求.本文将结合 Go 语言特性,为书写效率更高的代码,从常用数据结构.内存管理和并发, ...

  3. Go 高性能编程心法探秘

    万字长文,耐心阅读 目录 常用数据结构 1.反射虽好,切莫贪杯 2.避免重复的字符串到字节切片的转换 3.指定容器容量 4.字符串拼接方式的选择 4.1 行内拼接字符串推荐使用运算符+ 4.2 非行内 ...

  4. phi函数C语言,Intel Xeon Phi协处理器高性能编程指南 第1章.DOC

    Intel Xeon Phi协处理器高性能编程指南 第1章.DOC PAGE 18 第1章 绪论 STYLEREF \l "标题 2" \* MERGEFORMAT 1.15 超线 ...

  5. Java专家系列:CPU Cache与高性能编程

    认识CPU Cache CPU Cache概述 随着CPU的频率不断提升,而内存的访问速度却没有质的突破,为了弥补访问内存的速度慢,充分发挥CPU的计算资源,提高CPU整体吞吐量,在CPU与内存之间引 ...

  6. Go语言开发(九)、Go语言并发编程

    Go语言开发(九).Go语言并发编程 一.goroutine简介 1.并发与并行简介 并行(parallel):指在同一时刻,有多条指令在多个处理器上同时执行. 并发(concurrency):指在同 ...

  7. python微控制器编程pdf_Python高性能编程 中文高清pdf完整版[17MB]

    Python语言是一种脚本语言,其应用领域非常广泛,包括数据分析.自然语言处理.机器学习.科学计算.推荐系统构建等.Python高性能编程共有12章,围绕如何进行代码优化和加快实际应用的运行速度进行详 ...

  8. Go云原生高性能编程技法,值得观看

    代码的稳健.可读和高效是我们每一个 coder 的共同追求.本文将结合 Go 语言特性,为书写效率更高的代码,从常用数据结构.内存管理和并发,三个方面给出相关建议.话不多说,让我们一起学习 Go 高性 ...

  9. .NET高性能编程 - C#如何安全、高效地玩转任何种类的内存之Memory(三)

    前言 我们都知道,.Net Core是微软推出的一个通用开发平台,它是跨平台和开源的,由一个.NET运行时.一组可重用的框架库.一组SDK工具和语言编译器组成,旨在让.Net developers可以 ...

  10. Computer:少儿编程—每个人都应该学习编程,它能教你如何思考—编程入门的简介(编程语言的特点种类开发工具对比人类语言)、编程应用、编程意义之详细攻略

    Computer:少儿编程-每个人都应该学习编程,它能教你如何思考-编程入门的简介(编程语言的特点&种类&开发工具&对比人类语言).编程应用.编程意义之详细攻略 导读:乔布斯说 ...

最新文章

  1. IntelliJ IDEA 2019从入门到癫狂 图文教程!
  2. 谁是全球最顶级AI实验室?DeepMind、OpenAI和FAIR霸榜前三
  3. 向日葵win10远程linux主机,大神为你细说win10系统使用向日葵远程桌面软件远程的操作办法...
  4. linux内核实验平台搭建,搭建自己的Linux实验系统(一)
  5. 五种最易被老板开除的人
  6. 最优乘车(Floyd)
  7. mysql游标进阶_MYSQL进阶学习知识拓展一:MySQL 存储过程之游标!
  8. 使用FlyMcu.exe中出现的问题
  9. android退出中国,曾经的安卓机皇宣布关闭中国社区,彻底放弃手机业务了?
  10. 为什么有的计算机没有ppt,电脑上没有ppt怎么办
  11. 一些思考:腾讯股价为何持续都低
  12. 无盘 电影服务器,网吧电影服务器解决方案完全攻略指南
  13. 仿知乎的问答社区PHP系统+支持响应式/打赏功能
  14. matlab-线性代数 det 各阶主子式、余子式、代数余子式
  15. 为什么图片反复压缩后会普遍会变绿而不是其他颜色?
  16. doris ODBC 连接 mysql 外部表
  17. mmclassification
  18. SS00007.algorithm——|ArithmeticMachine.v07|——|Machine:监督学习算法.v06|
  19. Atitit 关于共享经济之共享男女朋友的创业计划
  20. kubernetes1.22安装使用ingress-nginx

热门文章

  1. Dart教程(三):类的定义和使用
  2. linux: 空指令(:)
  3. duilib中各控件响应的消息类型
  4. SharePoint 2007 图片库视图不可用、页面标题不显示
  5. Linux多线程编程详细解析----条件变量 pthread_cond_t
  6. 转:Apache2 httpd.conf 中文版
  7. 算法工程师必备技能(Python 优化提速小技巧)
  8. php设置上传文件浏览按钮的样式和文字,文件上传按钮的用户自定义样式的实现...
  9. vs2013 win10 Caffe的编译安装(微软版本)
  10. linux strace 命令参数