我就改了一行代码,为什么就全超时了?
共 1413字,需浏览 3分钟
·
2021-05-10 17:15
为什么我只改了一行代码,服务的极限 QPS 就从 1w 变成了 2000?
为什么我只是引入了一个开源库,进程的 RSS 占用就比以前多了一倍?
为什么我只是把字符串拼接改得更可读,接口就全超时了?
为什么我只是给接口加了监控,就直接导致一个 P2 事故?
在日常开发中,我们总是会与性能问题不期而遇,没有系统地进行过了解和学习的话,发现问题后的剧情,就是把这些棘手的问题丢给公司内的稳定性团队来定位了。
作为一个上进的 Gopher,你能忍受自己写出来的问题自己定位不出来么?我觉得不能。
这要求我们必须主动去学习性能优化的知识和套路,并且能够在开发实践中运用这些技能。
这是一个速度决定一切的时代,我们的生活在不断地数字化,线下的流程依然在持续向线上转移,转移过程中,作为工程师,我们会碰到各种各样的性能问题。
性能优化对于后端工程师是难以逃避的问题,对于 Gopher 来说也是如此。
作为一名优秀的 Gopher ,当然要赶紧抓住千载难逢的机会,报名参加 GopherChina 大会的会前培训,培训将由资深 Gopher 曹春晖在他的《Go 性能优化实战训练》中为大家拨开云雾,指点 Go 性能的迷津:
学习常见的调优工具,
了解如何诊断实践中的性能问题,并针对这些问题进行优化。
理解如何写出更符合计算机架构的高性能代码;
能够正确编写 benchmark 对 library 进行优化;
能够对已有的服务进行性能调优;
能够定位常见的服务瓶颈,并优雅地解决;
Benchmark Ninja :
正确编写 Benchmark,理解 Benchmark 的输出。
通过 Benchmark 理解 false sharing、变量逃逸、Zero Garbage 等等常见性能领域概念。
了解给 Go 语言提 PR 时为什么不能直接使用 Benchmark 结果。
了解社区内几个热门的 Benchmark Game 和相关测试。
Profiling Master:
Go 内置 pprof 的实现原理与操作指南。
苛刻内存限制环境下的 C10k 应用性能诊断与优化。
分析与优化 http 服务的 CPU 占用。
使用 pprof 分析 sync.Pool 误用导致的阻塞瓶颈。
Compiler/Reverse 101:
Go 语言的编译过程,相关的编译,反编译工具,编译优化过程观察编译优化带来的优势和问题。
Language Pitfalls:
sync.Pool 一定能够优化你的程序么。
语言的设计缺陷导致的那些性能问题。
Performance in the Wild:
应用外部问题导致的性能问题示例
了解常见的性能优化方法论
Xargin(曹春晖),资深 Gopher,《Go 语言高级编程》合著者,golang-notes 项目的作者(2.4k star),曾供职于滴滴和蚂蚁金服,做过大规模的在线服务与基础设施。对性能优化了解颇多,也期待能够把他碰到的大量实践案例与你分享。
报名参加的方式有两种:「扫码下方二维码」或者「阅读原文」即可