我就改了一行代码,为什么就全超时了?

GoCN

共 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),曾供职于滴滴和蚂蚁金服,做过大规模的在线服务与基础设施。对性能优化了解颇多,也期待能够把他碰到的大量实践案例与你分享。


报名参加的方式有两种:「扫码下方二维码」或者「阅读原文」即可



点击这里阅读原文,即刻报名~



浏览 59
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报