开篇词 | 怎样才能做好性能调优?
该思维导图由 AI 生成,仅供参考
- 深入了解
- 翻译
- 解释
- 总结
这篇文章主要讲述了Java应用性能调优的重要性以及作者在实际工作中的经验和心得。作者通过自身经历,强调了性能调优的重要性,并分享了自己的学习方法和经验。文章提到了性能调优的复杂性,以及需要具备扎实的计算机基础、习惯透过源码了解技术本质、善于追问和总结等方法。作者还介绍了专栏的设计,包括概述、Java编程性能调优、多线程性能调优、JVM性能监测及调优、设计模式调优、数据库性能调优和实战演练场等七大模块。通过这些模块,作者希望能够传达一套“学完就能用的调优方法论”,帮助读者在实际工作中提升技术水平。整体而言,这篇文章强调了Java应用性能调优的重要性,并提供了系统的学习方法和实战内容,适合对Java性能调优感兴趣的读者阅读学习。
2019-05-2054人觉得很赞给文章提建议
《Java 性能调优实战》,新⼈⾸单¥59
全部留言(70)
- 最新
- 精选
- 言凡老师你好,我的项目上用户量少,对性能要求也不高,很难遇到性能调优的大场面。缺少实践的话,通过学习也不会有很深的感触。在这种情况下应该如何提高自己的性能调优能力呢?
作者回复: 言凡你好,你提的这个问题非常好,我相信很多童鞋都有跟你一样的问题。 具体的性能调优能力确实需要一些实战历练,但在具体的后面,是我们平时积累的大量基础知识。所以说,首先要保证练好扎实的基础功,到了真实战场,这些基础能帮上你的大忙。很多大公司面试的时候,对中高级开发首先要求的也是基础。 实战经验虽然是我们的短板,但平时我们也可以在很多源码上学习一些调优经验,例如锁的优化的方式,减小锁粒度是优化锁常用的方式,我们可以学习和借鉴使用,像这样的优化案例有很多。也可以通过一些渠道学习大公司的优化方案以及大神的分享优化方案,强调的是学习一种思维方式,不一定能在实际项目中应用到,但是我们能在遇到问题的时候想到优化方案。 还有就是通过动手来实践,提高自己的实践能力。
2019-05-20249 - 李青首先,感谢老师的分享,使我受益匪浅。 其实我在这想回答@业余草童靴在留言中的困惑 个人认为性能调优分为以下步骤: 1.目前现象----》2.提出猜想------》3.验证猜想-------》4.定位到问题-------》5.解决问题 分析问题难其实就对应的是第2步骤,说白了就是你提不猜想,为什么你提出猜想,那是因为你的知识面不广,基础知识不牢固。知识面不够,就导致针对现象,提不出问题。 定位问题难对应第4步骤,这个的问题就是不会使用工具,我们在佐证我们的猜想时需要一些辅助工具。不会使用工具,就导致不能佐证猜想。
作者回复: 阐述的很好,点赞!
2019-05-31322 - 业余草定位痛点,难定位,其实是不会定位,难重现。分析问题,不会分析,不知道怎么分析,不知道各数据代表什么等。解决问题,解决这个问题,可能引出另外一个问题等。
编辑回复: 期待同学能在专栏中找到这些问题的答案~
2019-05-20320 - 钱马上又要开始双十一大促啦! 性能压测又是我来负责,性能优化的书和性能优化的事情也做过一些,订阅此专栏希望更系统的跟大牛再学习一次。 问题先行,通过此专栏,我希望学习到如下知识点: 第一互联网系统中各种组件的最佳性能指标大概多少 第二如何开始的定位出性能瓶颈和解决性能问题 第三了解老师的方法论是怎么样系统形成的 目前我的认知 1:首先,老师的观点扎实的计算机基础知识,这一点非常认同也非常重要,不过这一点我认为也是最难的没有几年的刻苦努力基本办不到,我大学也是学习计算的,不过当时并没有认识到计算机组成原理、计算机操作系统原理、计算机网络原理、计算机数据库原理、计算机编译原理、数据结构与算法等等这些计算机理论基础课程的对于软件编程的作用和重要性,工作前几年也是没有高度重视,现在再补啦!没有这些,自己的瓶颈很快就到 2:性能优化的思路 2-1:首先,要清楚每个常用组件的最佳性能指标,否则根本不知道达到其性能瓶颈没,比如:数据库每秒查询最快多快,网络带宽多少,当然计算机比人快太多啦!只要人能感知到慢,那一定是慢了,而且慢的惊人 2-2:定位性能瓶颈,这一步最难最关键,唯有扎实的计算机基本功加丰富的性能调优经验才能容易一段,首先,需要清楚一个服务有多少个环节,然后推测每个环节存在性能瓶颈的概率,然后按照概率大小去监控验证一下,基本功越好经验越丰富判断就越准确 2-3:如果做到了第二步,问题基本解决了,定位到问题可以认为就解决了一半的问题,有时是解决的80%的问题 2-4:优化性能的思路,让干的快的全干,如果做不到让干的快的多干,如果还做不到,看看是否能通过巧妙的逻辑少干一些活,如果还做不到,那证明已到性能最佳值,只能增加人手扩机器啦 2-5:复盘,归纳总结,避免一个坑了掉进去两次
作者回复: 👍
2019-09-076 - 何何何何何少侠希望老师后面的课程能够更多的注重于实际业务场景而不只是理论
作者回复: 少侠你好,本次专栏第一个模块主要是给大家熟悉性能调优的一些指标和策略,后面的模块中,每一讲都是通过实际场景来讲解具体的调优。
2019-05-205 - Mr.J老师您好,我是做Android开发的,Java后台服务开发只是最近项目接触到一些,用的是Springboot,springcloud,对于性能调优这块,首先我们的项目用户量很少,针对一些厂家定制项目,用户量小到出了问题可以停下来让你解决的地步,而且我也是刚接触后端这块,本身后端的很多开发知识要学,现在看到这个感觉很有用,也一边学开发一边学调优吧,也许能从摇篮中扼杀bug,对于我这种情况,老师您在学习的过程中有什么建议吗?
作者回复: 我总结下我过往的经历,我觉得打好基础功底,多动手实践是最重要的,其他的没有特别的建议。希望能帮助到你。
2019-05-2224 - 猫头鹰爱拿铁对性能调优所说的要扎实的计算机基础实在是太认同了。之前也做过类似的事,不过涉及的不复杂,是个单体应用,在开始性能调优的时候首先要对应用的性能进行监控获知瓶颈在哪,这就涉及到磁盘、网络、内存、cpu以及数据库不仅仅是jvm这块。然后再从这些数据里面抽丝剥茧等去找问题。
编辑回复: 英雄所见略同~😎
2019-05-204 - GEEK_jahen没有接触具体的调优过,虽然这些方面专业基础课都有学过,看专栏也体会到调优涉及的面很多。我就对学习过程做点预想吧:1)建立CPU、网络、磁盘等方面的性能指标,梳理理解指标的高低代表的含义;2)如何查看这些指标,也即熟练掌握性能分析工具;3)专栏最重要的是经验,由经验建立的系统的调优知识网络很重要;4)经验来自实践,希望专栏能提供案例,如何抽丝剥茧的综合调优的过程。 1)2)学习中会用笔记单篇记录,并计划整理一份cheat sheet,3)计划用知识导图梳理
作者回复: 这个学习过程非常棒
2019-08-223 - ātma-grāha(harry)公司是做电商的,用户量大概是百万级别的,我是刚毕业的主要接触的是逻辑代码,怎么才能继续提升自己?
作者回复: 要有恒心、有耐心的学习,多动手实践,可以阅读一些框架类的实现源码,有不懂的多向老前辈提问
2019-06-191 - iusugar老师好,我是一名大三学生,现在就一心想提高java方面的技术。没接触过公司的实战项目,学这个专栏会不会太早了?
作者回复: 这位同学,你好。我印象中大三基本完成了基础理论课程,对于软件基础应该没有问题了。如果对Java已经有一定的了解,我相信理解消化这个专栏也不难。这个专栏大部分是理论结合实战,基础知识比较多,而且里面贯穿了一些方法论,希望帮助你获得方法论,真正获取到解决问题的能力。
2019-05-221