微信扫一扫
分享到朋友圈

系统又出bug?你需要的Java性能调优全攻略来了 | 极客时间

作者:InfoQ 来源:InfoQ 公众号
分享到:

05-23

相信对于每一个奋战在开发一线的技术人来说,Java 性能调优都是老生常谈的问题。特别当“糙快猛”的开发模式大行其道时,随着系统访问量的增加、代码的臃肿,各种性能问题便会层出不穷。比如,下面这些典型的性能问题,你肯定或多或少都遇到过:

  • 在进行性能测试时,接口响应时间长,吞吐量低;

  • 在高并发下,JVM 中 Full GC 异常,JVM 堆内存溢出;

  • 由于业务增长迅猛,大量读写操作单表单库,造成数据库死锁。

对于很多研发人员来说,Java 性能调优都是很头疼的问题,那么 Java 性能调优为什么不好掌握呢?Java 性能调优不是一门编程语言,无法通过直线式的思维来掌握和应用,我认为其中的主要原因有下面两点:

  1. 对工程师的技术广度的高要求。互联网时代,现在一个简单的系统就囊括了应用程序、数据库、容器、操作系统、网络等技术,线上一旦出现性能问题,就可能要你协调多方面组件去进行优化,这就是技术广度;

  2. 对工程师的技术深度的高要求很多性能问题隐藏得很深,可能因为一个小小的代码,也可能因为线程池的类型选择错误...... 可归根结底考验的还是我们对这项技术的了解程度,这就是技术深度。

Java 性能调优看起来似乎错综复杂,但是也不是没有章法可循。在主导参与物流、电商、游戏支付系统的研发,奋战性能优化一线多年后,我根据自己的实战经验,把 Java 性能调优分成下面 5 个层级:Java 编程、多线程、JVM 、设计模式、数据库,每个层级下都覆盖了最常见的优化问题,看下图:

另外,对于 Java 性能优化,不仅要理解系统架构、应用代码,还需要关注 JVM 层甚至操作系统底层。有时候,深入理解 Java 底层源码就能达到事半功倍的效果。除了上面提到的问题,性能调优还遵循一些通用的原则,比如说按需优化、二八原则、创建性能测试套件等等。关于以上这些问题,我都会在《Java 性能调优实战》专栏里为你一一讲解。


识别上图二维码,马上开始学

我是谁?会讲什么?

你好,我是刘超,目前是金山软件西山居(国内最早的游戏开发工作室)技术经理,主导游戏支付系统的研发工作。工作这些年,我陆续参与过物流、电商、游戏支付系统的研发,这些项目都存在一个共性,就是经常会运营一些大促以及抢购类活动。活动期间,系统不仅要保证处理请求业务的严谨性,还要历经短时间内高并发的考验。

我一直处于性能调优的一线,正所谓“实践出真知“。这些年在生产环境中遇到的事故不少,很多坑一点点踩平,就走出了一条路,这个过程中我收获了很多实打实的经验,希望能分享给更多的人,所以,我在极客时间开设了《Java 性能调优实战》这门课。

在这个专栏里,我将结合自己多年的从业经验,从实战出发,精选高频性能问题,透过 Java 底层源码,提炼出优化思路和它背后的实现原理,最后形成一套“学完就能用的调优方法论”。这也是很多一线大厂对于高级工程师的要求,希望通过这个专栏帮助你快速进阶。

这个专栏具体怎么设计的呢?结合 Java 应用开发的知识点,我将内容分为七大模块,从上到下依次详解 Java 应用服务的每一层优化实战

模块一,概述。为你建立两个标准。一个是性能调优标准,告诉你可以通过哪些参数去衡量系统性能;另一个是调优过程标准,带你了解哪些调优策略可以复用,排查性能问题,进而解决问题。

模块二,Java 编程性能调优。JDK 是 Java 语言的基础库,熟悉 JDK 中各个包中的工具类,可以帮助你编写出高性能代码。这个模块我会从基础的数据类型讲起,涉及容器在实际应用场景中的调优,还有现在互联网系统架构中比较重要的网络通信调优。

模块三,多线程性能调优。目前大部分服务器都是多核处理器,多线程编程的应用广泛。为了保证线程的安全性,通常会用到同步锁,这会为系统埋下很多隐患;除此之外,还有多线程高并发带来的性能问题,这些都会在这个模块重点讲解。

模块四,JVM 性能监测及调优。Java 应用程序是运行在 JVM 之上的,对 JVM 进行调优可以提升系统性能。这个模块重点讲解 Java 对象的创建和回收、内存分配等。

模块五,设计模式调优。在架构设计中,我们经常会用到一些设计模式来优化架构设计。这个模块我将结合一些复杂的应用场景,分享设计优化案例。

模块六,数据库性能调优。数据库最容易成为整个系统的性能瓶颈,这个模块我会重点解析一些数据库的常用调优方法。

模块七,实战演练场。以上六个模块的内容,都是基于某个点的调优,现在是时候把你前面所学都调动起来了,这个模块我将带你进入综合性能问题高频出现的应用场景,学习整体调优方法。

纵观整个专栏,以点带面,目的就是交付给你一套“学完就用的调优方法论”,让你在遇到性能问题时,能够调动所学,触类旁通,技术水平更上一层楼。

限时订阅福利
  1. 限时优惠 ¥68(原价 ¥99 ),1 场电影的价格带你系统实战 Java 性能调优;

  2. 分享海报,邀请好友订阅即可获得 ¥24 返现,多邀多得,上不封顶,APP 内立即提现。另外,新用户还能获得 5 元优惠券,购买专栏更便宜。

  3. 现在订阅,还可以领取价值 8800 元的 2019 年全球软件开发大会 PPT,领取方式:关注本公众号,对话框回复「调优」,即可领取!

部分资料截图:

       

扫码免费试看

专栏详细目录


       

扫码马上开始学,还能和刘超交流互动哦!

点击「阅读原文」,免费试读专栏,掌握一套即学即用的 Java 性能调优技能!

阅读40042
java 
举报0
关注InfoQ微信号:infoqchina

用微信扫描二维码即可关注
声明

1、头条易读遵循行业规范,任何转载的稿件都会明确标注作者和来源;
2、本文内容来自“InfoQ”微信公众号,文章版权归InfoQ公众号所有。

评论
更多

文章来自于公众号:

InfoQ

微信号:infoqchina

邮箱qunxueyuan#163.com(将#换成@)
微信编辑器
免责声明
www.weixinyidu.com   免责声明
版权声明:本站收录微信公众号和微信文章内容全部来自于网络,仅供个人学习、研究或者欣赏使用。版权归原作者所有。禁止一切商业用途。其中内容并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。如果您发现头条易读网站上有侵犯您的知识产权的内容,请与我们联系,我们会及时修改或删除。
本站声明:本站与腾讯微信、微信公众平台无任何关联,非腾讯微信官方网站。