Java 性能优化指南,及唯品会的实战

2018/8/13 posted in  Java

原文出处: 江南白衣

来了唯品会一年多,不少时间花在与服务化框架、业务应用的性能的缠斗上。

前几天正好趁着中生代社区的十月十城技术沙龙,把脑海中关于性能优化的记忆全部理了一遍…. 讲完回家,又本着认真严谨的态度再理了一遍,终于成为现在这份 66 页的 PPT

各位客官,1.4 版的内容略有增减,超链接也已修好: 《Java 性能优化指南 V1.4.pdf》

范围

应用性能,受操作系统参数,三方类库选择,数据库查询,甚至压测工具如 JMeter 本身调优的影响。

本次分享只着重在三方面:

  • JVM 的调优
  • 代码的调优
  • 定位性能问题的工具

基本原则

网上如此多新旧不一的资料,这么多肆意传播亦真亦错的观点,怎么办呢?

  1. 多看一些靠谱的资料,问一些靠谱的人。
  2. 怀疑一切,微基准测试一切,诚意推荐 JMH。
  3. 看 JDK 代码,看一切代码。

JVM 优化

首先,JIT 入门知识;然后,JVM 参数的简介;再然后,最头痛的 GC 问题的处理。

代码优化

代码优化,两大方向一是面向 GC 的编程,二是并发与锁,然后再来聊聊其他。

问题定位工具集

黑盒调优是最不可靠的,推荐线下用 JMC,线上用 Btrace 定位问题。

特别鸣谢

感谢 R 大 , 日常三更半夜跨洋热心解答各种 JVM 问题。

感谢 Chembo(国钦),对 PPT 的美化。

完整 PPT 下载

《Java 性能优化指南 V1.4.pdf》, by 江南白衣, 超链接修正版。