效能最佳化
我們都知道程式碼是系統的基石,沒有良好的程式碼,系統架構就不牢固。但作為一般一個普通程式設計師,很少有機會參與系統架構級別的最佳化,甚至暫時不能理解架構上的調整。在開發新功能或審查組內的程式碼時,最佳化系統的方式主要是最佳化自己或他人寫的程式碼。
但是真實的情況是:且不說其他層次的最佳化,就一個程式碼最佳化很多入行沒有多久的小夥伴甚至都還沒入門,更別說啥實現高效能Java系統了。今天網際網路雷鋒(小編我)為大家帶來的阿里效能最佳化指南,就從高效能、易維護、程式碼增強,以及在微服務系統中編寫Java程式碼的角度來描述如何實現高效能Java系統。相信大家看了之後就知道,差距不止一點點!
來看主要內容
第一部分Java程式碼最佳化透過一個不超過10行的程式碼最佳化示例介紹如何對Java系統進行最佳化,如何使用JMH驗證效能最佳化
JMH常用設定
字串和數字操作併發程式設計和非同步程式設計介紹JDK的核心類String.Number和併發包;
字串和數字操作
Java併發程式設計
程式碼效能最佳化透過20多個最佳化技巧來說明Java效能最佳化的各種方法;
switch 最佳化
位運算
錯誤最佳化策略
高效能工具介紹了常用的高效能工具,如Caffeine、Jackson、HikariCP,並對其高效能的原因做了一定的原始碼解析。
對映工具Selma
JSON 工具 Jackson
HikariCP
第二部分Java註釋規範可讀性程式碼不同於程式碼規範,這部分強調編寫易於閱讀的程式碼,會從程式碼註釋、程式碼分解、面向物件三方面進行講解。容易閱讀的程式碼是系統性能最佳化的前提。
方法
發現物件
第三部分JIT最佳化介紹JIT 最佳化。JIT最佳化對Java系統執行有深刻的影響,本章系統介紹了JIT編譯器、程式碼快取、內聯等知識。
JITWatch
第四部分程式碼審查包含30多個具有“壞味道”的程式碼片段,讀者可以嘗試最佳化程式碼。
RPC呼叫定義的返回值
一個 JMH 例子
JDBC 操作
第五部分ASM執行時增強介紹Java位元組碼和ASM,用於執行時增強Java系統;
Java 位元組碼
Java 方法的執行
Bytecode OutIine外掛
ASM增強程式碼
JSR269編譯時增強介紹JSR269規範,用於編譯時增強Java系統。透過使用這些技術,可以有效提升系統的維護性和效能。
Java編譯的過程
除錯註解處理器