来了唯品会一年多,不少时间花在与服务化框架、业务应用的性能的缠斗上。 前几天正好趁着中生代技术的十月十城技术沙龙,把脑海中关于性能优化的记忆全部理了一遍....讲完回家,又本着认真严谨的态度再理了一遍,终于成为现在这份66页的PPT。 范围 应用性能,受操作系统参数,三方类库选择,数据库查询,甚至压测工具如JMeter本身调优的影响。 本次分享只着重在三方面:
-
JVM的调优
-
代码的调优
-
定位性能问题的工具
基本原则 网上如此多新旧不一的资料,这么多肆意传播亦真亦错的观点,怎么办呢?
-
多看一些靠谱的资料,问一些靠谱的人。
-
怀疑一切,微基准测试一切,诚意推荐JMH。
-
看JDK代码,看一切代码。
JVM优化 首先,JIT入门知识; 然后,JVM参数的简介; 再然后,最头痛的GC问题的处理。
x
x代码优化 代码优化,两大方向: 一是面向GC的编程, 二是并发与锁, 然后再来聊聊其他。
问题定位工具集 黑盒调优是最不可靠的,推荐线下用JMC,线上用BTrace定位问题。