You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

38 lines
2.5 KiB
Markdown

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# 35 | [视频]实际项目中的性能优化ingress-nginx中的几个PR解读
你好,我是温铭。
今天的内容,我同样会以视频的形式来讲解。老规矩,在你进行视频学习之前,先问你这么几个问题:
* 如何在开源项目中找到可能存在的性能问题?
* 在 Github 上,如何与其他开发者正确地交流?
这几个问题,也是今天视频课要解决的核心内容,希望你可以先自己思考一下,并带着问题来学习今天的视频内容。
同时,我会给出相应的文字介绍,方便你在听完视频内容后,及时总结与复习。下面是今天这节课的文字介绍部分。
## 今日核心
[ingress-nginx](https://github.com/kubernetes/ingress-nginx) 是 k8s 官方的一个项目主要使用Go、 Nginx 和 lua-nginx-module 来处理入口流量。
在今天的视频中,我会为你清楚介绍,如何运用我们刚刚学习的性能优化方面的知识,来发现开源项目的性能问题。要知道,在我们给开源项目贡献 PR 时,跑通测试案例集以及与项目维护者积极沟通,都是非常重要的。
下面是 ingress-nginx 中,和 OpenResty 性能相关的两个 PR
* [https://github.com/kubernetes/ingress-nginx/pull/3673](https://github.com/kubernetes/ingress-nginx/pull/3673)
* [https://github.com/kubernetes/ingress-nginx/pull/3674](https://github.com/kubernetes/ingress-nginx/pull/3674)
从中你也可以发现,即使是资深的开发者,对 LuaJIT 相关的优化,可能也并不是很熟悉。一方面是因为,这两个 PR 涉及到的代码,并不会对整体系统造成严重的性能下降;另一个方面,这方面的优化知识,没有人系统地总结过,开发者即使想优化也找不到方向。
事实上,很多时候,我们站在代码可读性和可维护性的角度来看,可有可无的优化是不必要的,你只要去优化那些被频繁执行的代码片段就可以了,过度优化是万恶之源。
那么,学完今天这节课后,你是否可以在其他的开源项目中,找到类似的性能优化点呢?
## 课件参考
今天的课件已经上传到了我的GitHub上你可以自己下载学习。
链接如下:[https://github.com/iresty/geektime-slides](https://github.com/iresty/geektime-slides)
如果有不清楚的地方,你可以在留言区提问,另也可以在留言区分享你的学习心得。期待与你的对话,也欢迎你把这篇文章分享给你的同事、朋友,我们一起交流、一起进步。