课程简介
随着大数据时代的快速到来,以及大数据在生产生活中迅速应用,大数据领域如雨后春笋般的出现大量的新技术,如Go语言等技术,其中Go语言已经成为编程语言中重要的一部分,被越来越多的企业所使用。为了使Go语言处理速度更快,效率更高,在使用过程中不可避免的需要进行一系列的性能优化。本培训尹老师总结和归纳多年Go语言工作经验,对Go语言技术的性能调优进行深入剖析,使学员从实操层面、架构层面到核心原理层面进行调优,并通过生动的案例展示优化过程与效果,调优的范围包括Go的GC,网络优化,性能优化工具介绍及其使用以及Go内存模型,常见性能优化手段,常用的系统及网络优化参考,使用不规范造成的性能问题,成功优化案例讲解等。
目标收益
1、Go语言性能优化,主要包括Go语言的GC、Go语言的性能优化工具介绍及其使用;
2、Go语言内存模型,常见性能优化手段;
3、Go语言网络优化、Go语言常用的系统及网络优化参考;
4、Go语言使用不规范造成的性能问题,成功优化案例讲解;
培训对象
1、本课程适合于Go语言开发工程师;
2、本课程适合于高级开发工程师、项目经理、技术总监;
3、本课程适合于企业技术管理人员;
4、本课程适合于IT运维人员;
课程大纲
Go语言性能优化 |
1、Go语言性能优化 2、Go语言性能优化主要方面 a)CPU性能优化 b)内存性能优化 c)堆栈性能优化 d)Goroutine性能优化 e)锁性能优化 f)网络性能优化 g)代码编写性能优化 h)架构设计性能优化 3、使用不规范造成的性能问题 4、实操演示:Go语言性能优化 |
Go语言的GC原理 |
1、Go语言的GC原理 2、什么是垃圾回收 3、内存泄露检测工具 4、智能指针 5、Golang的GC背景 6、Golang的GC相关问题 7、Go语言的GC特征 8、三色标记法 9、Mark and Sweep算法 10、三色标记法触发条件 11、三色标记法的具体过程 12、Golang中的GC是如何工作的 13、如何优化GC 14、硬性参数 15、使用gdb调优 16、减少对象分配尽量重用对象 17、函数编码参数调优 18、数组的空间规划 19、写代码时要避免要用string+操作 20、尽量复用小对象 21、局部变量尽量少声名 22、多个小对象可以放到一个结构体中 23、如何测量GC 24、案例:Go语言的GC案例 |
Go语言的性能优化工具介绍及其使用 |
1、Go语言的性能优化工具介绍及其使用 2、Go语言采集性能数据 3、Go语言内置采集程序运行数据的工具 4、runtime/pprof 5、net/http/pprof 6、利用runtime/pprof工具采集运行数据 7、利用runtime/pprof应用性能分析 8、利用net/http/pprof工具采集运行数据 9、利用net/http/pprof应用性能分析 10、获取函数占用的CPU以及内存资源 11、profiling报告保存到文件 12、CPU性能分析 13、开启CPU性能分析 14、停止CPU性能分析 15、使用go tool pprof工具进行CPU性能分析 16、内存性能优化 17、记录程序的堆栈信息 18、使用go tool pprof工具进行内存性能分析 19、实操演示:Go语言的性能优化工具介绍及其使用案例 |
Go语言内存模型 |
1、Go语言内存模型 2、常见的垃圾回收模型 3、引用计数(reference counting) 4、标记-清除(mark and sweep) 5、分代收集(generation) 6、GO语言的垃圾回收器 7、GO语言的垃圾回收器历史介绍 8、GO语言的内存回收存在的问题 9、Go程序内存占用大的问题 10、Go的垃圾回收触发阈值 11、操作系统采取“延迟回收”策略 12、GC时间长的问题 13、Goroutine内存泄露的问题 14、堆内存泄漏(Heap leak) 15、系统资源泄露(Resource Leak) 16、实操演示:Go语言内存模型案例剖析 |
Go语言常见性能优化手段 |
1、Go语言常见性能优化手段 2、go tool pprof命令 3、命令行交互界面 4、go tool pprof命令参数解读 5、图形化界面 6、安装graphviz图形化工具 7、go-torch和火焰图 8、火焰图(Flame Graph) 9、安装go-touch 10、安装FlameGraph 11、压测工具wrk 12、使用go-torch 13、pprof与性能测试结合 14、Gin框架中使用pprof 15、下载Gin框架专用pprof包 16、项目中添加Gin框架 17、编译并运行代码生成/debug/pprof的API 18、使用go tool pprof采集数据 19、go tool pprof命令行交互界面 20、实操演示:Go语言常见性能优化手段调优案例 |
Go语言网络优化 |
1、Go语言网络优化 2、服务型应用 3、WEB应用 4、使用net/http/pprof库分析HTTP服务 5、gin框架 6、HTTP服务的/debug/pprof endpoint 7、/debug/pprof/profile 8、/debug/pprof/heap 9、/debug/pprof/block 10、/debug/pprof/goroutines 11、实操演示:Go语言网络优化案例 |
Go语言常用的系统及网络优化参考 |
1、Go语言常用的系统及网络优化参考 2、Linux内核参数 3、硬性参数 4、系统运行参数设置 5、Go语言网络优化参考 6、使用gdb调优 7、实操演示:Go语言常用的系统及网络优化参考案例 |
Go语言使用不规范造成的性能问题 |
1、Go语言使用不规范造成的性能问题 2、Go语言代码编写不规范造成的性能问题 3、Go语言运行环境参数设置造成的性能问题 4、案例:Go语言使用不规范造成的性能问题 |
Go语言成功优化案例讲解 |
1、Go语言成功优化案例讲解 2、优化案例代码介绍 3、编译过程优化 4、代码优化 5、参数优化 6、案例:Go语言成功优化案例讲解 |
Go语言性能优化 1、Go语言性能优化 2、Go语言性能优化主要方面 a)CPU性能优化 b)内存性能优化 c)堆栈性能优化 d)Goroutine性能优化 e)锁性能优化 f)网络性能优化 g)代码编写性能优化 h)架构设计性能优化 3、使用不规范造成的性能问题 4、实操演示:Go语言性能优化 |
Go语言的GC原理 1、Go语言的GC原理 2、什么是垃圾回收 3、内存泄露检测工具 4、智能指针 5、Golang的GC背景 6、Golang的GC相关问题 7、Go语言的GC特征 8、三色标记法 9、Mark and Sweep算法 10、三色标记法触发条件 11、三色标记法的具体过程 12、Golang中的GC是如何工作的 13、如何优化GC 14、硬性参数 15、使用gdb调优 16、减少对象分配尽量重用对象 17、函数编码参数调优 18、数组的空间规划 19、写代码时要避免要用string+操作 20、尽量复用小对象 21、局部变量尽量少声名 22、多个小对象可以放到一个结构体中 23、如何测量GC 24、案例:Go语言的GC案例 |
Go语言的性能优化工具介绍及其使用 1、Go语言的性能优化工具介绍及其使用 2、Go语言采集性能数据 3、Go语言内置采集程序运行数据的工具 4、runtime/pprof 5、net/http/pprof 6、利用runtime/pprof工具采集运行数据 7、利用runtime/pprof应用性能分析 8、利用net/http/pprof工具采集运行数据 9、利用net/http/pprof应用性能分析 10、获取函数占用的CPU以及内存资源 11、profiling报告保存到文件 12、CPU性能分析 13、开启CPU性能分析 14、停止CPU性能分析 15、使用go tool pprof工具进行CPU性能分析 16、内存性能优化 17、记录程序的堆栈信息 18、使用go tool pprof工具进行内存性能分析 19、实操演示:Go语言的性能优化工具介绍及其使用案例 |
Go语言内存模型 1、Go语言内存模型 2、常见的垃圾回收模型 3、引用计数(reference counting) 4、标记-清除(mark and sweep) 5、分代收集(generation) 6、GO语言的垃圾回收器 7、GO语言的垃圾回收器历史介绍 8、GO语言的内存回收存在的问题 9、Go程序内存占用大的问题 10、Go的垃圾回收触发阈值 11、操作系统采取“延迟回收”策略 12、GC时间长的问题 13、Goroutine内存泄露的问题 14、堆内存泄漏(Heap leak) 15、系统资源泄露(Resource Leak) 16、实操演示:Go语言内存模型案例剖析 |
Go语言常见性能优化手段 1、Go语言常见性能优化手段 2、go tool pprof命令 3、命令行交互界面 4、go tool pprof命令参数解读 5、图形化界面 6、安装graphviz图形化工具 7、go-torch和火焰图 8、火焰图(Flame Graph) 9、安装go-touch 10、安装FlameGraph 11、压测工具wrk 12、使用go-torch 13、pprof与性能测试结合 14、Gin框架中使用pprof 15、下载Gin框架专用pprof包 16、项目中添加Gin框架 17、编译并运行代码生成/debug/pprof的API 18、使用go tool pprof采集数据 19、go tool pprof命令行交互界面 20、实操演示:Go语言常见性能优化手段调优案例 |
Go语言网络优化 1、Go语言网络优化 2、服务型应用 3、WEB应用 4、使用net/http/pprof库分析HTTP服务 5、gin框架 6、HTTP服务的/debug/pprof endpoint 7、/debug/pprof/profile 8、/debug/pprof/heap 9、/debug/pprof/block 10、/debug/pprof/goroutines 11、实操演示:Go语言网络优化案例 |
Go语言常用的系统及网络优化参考 1、Go语言常用的系统及网络优化参考 2、Linux内核参数 3、硬性参数 4、系统运行参数设置 5、Go语言网络优化参考 6、使用gdb调优 7、实操演示:Go语言常用的系统及网络优化参考案例 |
Go语言使用不规范造成的性能问题 1、Go语言使用不规范造成的性能问题 2、Go语言代码编写不规范造成的性能问题 3、Go语言运行环境参数设置造成的性能问题 4、案例:Go语言使用不规范造成的性能问题 |
Go语言成功优化案例讲解 1、Go语言成功优化案例讲解 2、优化案例代码介绍 3、编译过程优化 4、代码优化 5、参数优化 6、案例:Go语言成功优化案例讲解 |