Go 语言高性能编程

2021-03-11 09:33

阅读:392

标签:编译优化   开发   get   缓存   初学   超时   获得   range   源码   

目录

  • 序言

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

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

标签:编译优化   开发   get   缓存   初学   超时   获得   range   源码   

原文地址:https://www.cnblogs.com/gzdaijie/p/14129738.html


评论


亲,登录后才可以留言!