关灯
得知互动 门户 互联网+ SEO/SEM 查看内容
14

性能之巅-优化你的步伐

摘要: outline:关注&指标&度量,根底理论知识,工具&方法,最好实践,参考资料性能优化关注:CPU、内存、磁盘IO、网络IO等四个方面。性能指标:吞吐率、相应时间、QPS/IOPS、TP99、资源利用率是我们常常关注的指标 ...


性能之巅-优化你的步伐


outline:关注&指标&度量,根底理论知识,工具&方法,最好实践,参考资料



性能之巅-优化你的步伐



性能优化关注:CPU、内存、磁盘IO、网络IO等四个方面。



性能之巅-优化你的步伐



性能指标:吞吐率、相应时间、QPS/IOPS、TP99、资源利用率是我们常常关注的指标。



性能之巅-优化你的步伐



时间度量:从cpu cycle到网络IO,自上到下,时间量级越大。



性能之巅-优化你的步伐



监控、分析、优化,三部曲,以终为始,循环往复。




性能之巅-优化你的步伐



优化性能,必要一些体系编程知识。



性能之巅-优化你的步伐



提拔处置惩罚本领、淘汰盘算量是优化的2个根本方向。



性能之巅-优化你的步伐



优化大家格雷格画的图,吊炸天,你应当很认识,gregg亲手实现了一些工具。



性能之巅-优化你的步伐



借助工具定位性能瓶颈。gprof2dot.py可以处置惩罚多种采样输出数据

发起利用perf等非侵入式的profiling工具。



性能之巅-优化你的步伐



perf不但仅可以定位cpu瓶颈,还可以检察许多方面,好比缺页,分支展望失败,上下文切换等。



性能之巅-优化你的步伐



IO瓶颈,你应当知道的知识。



性能之巅-优化你的步伐



有关锁的知识,你应当知道的。



性能之巅-优化你的步伐



多线程的学问很大




性能之巅-优化你的步伐



内存管理的方方面面



性能之巅-优化你的步伐



最好实践,没有充足来由,你不应当违反。



性能之巅-优化你的步伐



你应当懂得的。



性能之巅-优化你的步伐



关于排序,你应当知道的。



性能之巅-优化你的步伐


这些资料不错,你值得拥有。

假如对你有资助,请帮助转发,让更多朋侪收益。


  • 一样平常性原则
  • 依据数据而不是凭空推测
  • 忌过早优化
  • 忌过分优化
  • 深入明白业务
  • 性能优化是长期战
  • 选择适宜的权衡指标、测试用例、测试情况
  • 性能优化的条理
  • 需求阶段
  • 计划阶段
  • 实现阶段
  • 一样平常性方法
  • 缓存
  • 并发
  • 惰性
  • 批量,归并
  • 更高效的实现
  • 缩小解空间
  • 性能优化与代码质量
  • 总结

依据数据而不是凭空推测

这是性能优化的第一原则,当我们疑心性能有题目的时间,应当通过测试、日记、profillig来分析出那里有题目,对症下药,而不是凭感觉、撞运气。一个体系有了性能题目,瓶颈有大概是CPU,有大概是内存,有大概是IO(磁盘IO,网络IO),大方向的定位可以利用top和stat系列来定位(vmstat,iostat,netstat...),针对单个历程,可以利用pidstat来分析。

在本文中,首要讨论的是CPU相干的性能题目。按照80/20定律,绝大多数的时间都消耗在少量的代码片断内里,找出这些代码唯一可靠的办法就是profile,我所知的编程语言,都有相干的profile工具,纯熟利用这些profile工具是性能优化的第一步。

忌过早优化

The real problem is that programmers have spent far too much time worrying about efficiency in the wrong places and at the wrong times; premature optimization is the root of all evil (or at least most of it) in programming.

我并不非常清晰Donald Knuth说出这句名言的上下文情况,但我本身是非常认同这个观念的。在我的工作情况(和典范的互联网运用英魂开辟)与编程模式下,寻求的是快速的迭代与试错,过早的优化每每是无勤奋。而且,过早的优化很轻易拍脑壳,优化的点每每不是真实的性能瓶颈。

忌过分优化

As performance is part of the specification of a program – a program that is unusably slow is not fit for purpose

性能优化的目的是寻求适宜的性价比。

在差别的阶段,我们对体系的性能会有肯定的要求,好比吞吐量要到达多少多少。假如达不到这个指标,就必要去优化。假如能满意预期,那么就无需耗费时间精神去优化,好比只有几十个人利用的内部体系,就不消按照十万在线的目的去优化。

而且,背面也会提到,一些优化方法是“有损”的,大概会对代码的可读性、可维护性有副作用。这个时间,就更不能过分优化。

深入明白业务

代码是效劳于业务的,大概是效劳于终究用户,大概是效劳于其他步伐员。不相识业务,很难明白体系的流程,很难找出体系计划的不敷的地方。背面还会提及对业务明白的紧张性。

性能优化是长期战

当焦点业务方向明白以后,就应当开始关注性能题目,当项目上线以后,更应当连续的举行性能检测与优化。

如今的互联网产物,不再是一锤子交易,在上线以后还必要连续的开辟,用户的涌入也会带来性能题目。因此必要主动化的检测性能题目,保持稳固的测试情况,连续的发现并办理性能题目,而不是被动地比及用户的投诉。

选择适宜的权衡指标、测试用例、测试情况

正由于性能优化是一个恒久的举动,以是必要固定权衡指标、测试用例、测试情况,如许才气客观反映性能的现实环境,也能揭示出优化的结果。

权衡性能有许多指标,好比体系相应时间、体系吞吐量、体系并发量。差别的体系焦点指标是不一样的,起首要明白本体系的焦点性能诉求,固定测试用例;其次也要分身其他指标,不能顾此失彼。

测试情况也很紧张,有一次忽然发现我们的QPS高了很多,但是步伐压根儿没优化,查了半天,才发现是换了一个更牛逼的物理机做测试效劳器。



路过

雷人

握手

鲜花

鸡蛋

说点什么...

已有14条评论

最新评论...

天外来客2020-9-26 04:20引用

转发了

7感2020-9-26 04:15引用

转发了

海丸美2020-9-26 04:11引用

转发了

¢莫尐柒2020-9-26 04:07引用

转发了

错过的期待2020-9-26 04:02引用

不错

lunatic9992020-9-26 03:58引用

挺好的

错过的期待2020-9-26 03:54引用

不错,感谢分享,盼望可以或许有更多的分享关于性能优化这块

杰伦精神2020-9-26 03:50引用

看不清

海丸美2020-9-26 03:45引用

ppt做的不错 不外也没啥干货。。给产物司理比力好用

关平2020-9-26 03:41引用

这些图留着可以坐ppt参考,拓展思绪

plthtx2020-9-26 03:37引用

我们效劳器天天不定时的负载会有10几分钟的负载突高 但cpu 内存 io 都没发现啥非常 这类环境是为啥呢?

天外来客2020-9-26 03:32引用

个人性能优化另有一个关注点:锁。偶然会发现呆板资源另有空闲,但是性能提不上去,一样平常就是锁

天外来客2020-9-26 03:28引用

ppt能发一下吗

杰伦精神2020-9-26 03:24引用

不是说会有一个优化实例吗?

查看全部评论(14)

本文作者
2020-9-26 03:20
  • 0
    粉丝
  • 3368
    阅读
  • 14
    回复

关注帮客优品

扫描关注,了解最新资讯

联系人:叶先生
Q Q:956130084
EMAIL:956130084@qq.com
地址:中国·武汉
热门评论
排行榜

关注我们:微信订阅号

官方微信

APP下载

全国服务Q Q:

956130084

中国·湖北

Email:956130084@qq.com

Copyright   ©2015-2022  站长技术交流论坛|互联网技术交流平台Powered by©Discuz!技术支持:得知网络  

鄂公网安备 42018502006730号

  ( 鄂ICP备15006301号-5 )