微信号:sagacity-mac

介绍:MacTalk 开通于2012年末,内容起于 Mac 而不止 Mac,内容覆盖了技术、创业、产品和人文思考.文风有趣,又有一点力量.相关图书《MacTalk·人生元编程》《MacTalk·跨越边界》

Java性能调优,你需要跨越的5个层级

2019-05-20 17:12 池建强

对于很多研发人员来说,Java 性能调优都是很头疼的问题,为什么这么说?如今,一个简单的系统就囊括了应用程序、数据库、容器、操作系统、网络等技术,线上一旦出现性能问题,就可能要你协调多方面组件去进行优化。另外,很多性能问题隐藏得很深,可能因为某个代码细节没处理好,也可能因为线程池的框架选择错误......


如何轻松搞定 Java 性能调优呢?我和金山软件西山居技术经理刘超沟通,他根据自己的实战经验,把 Java 性能调优分成 5 个层级:Java 编程、多线程、JVM 性能检测、设计模式、数据库性能,每个层级下都覆盖了最常见的优化问题。下面分别给你梳理一下:


第 1 层:Java 编程性能调优


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

第 2 层:多线程性能调优


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

第 3 层:JVM 性能监测及调优


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

第 4 层:设计模式调优


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

第 5 层:数据库性能调优


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


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


沟通过程中我和 Gary 发现刘超在 Java 性能调优领域具备非常丰富的实战经验,而 Java 性能调优基本上是极客时间在 Java 领域的最后一块没补上的版图了。于是邀请了刘超来一起打造这个专栏。今天「Java 性能调优实战」专栏终于和读者见面了,刘超会分别通过这五个层级为大家讲解性能调优的一线经验。我看了目录和备稿,系统性和实战性,推荐给所有的 Java 工程师。




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

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

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

扫码订阅,了解详情

 
MacTalk 更多文章 多玩会手机还是多看书? 你为什么要做程序员? 如何通过抓包来学习 Web 协议 我在极客时间开了个播客,免费听 Python 之父谈 Python 的强制缩进及其他
猜您喜欢 【视频】| 探秘:记者深入骚扰电话公司大本营 程序员:我只想安静地写代码,领导却跟我谈大局、讲奉献 如何提高APP用户的留存和活跃|打造个性化用户体验 内推:游戏公司 | 测试开发 不懂MySQL索引优化?甩你这份清单别嫌多