易燃物匯聚 YouTube 有聲書與書評
Java性能權威指南(第2版) 封面

Java性能權威指南(第2版)

斯科特·奧克斯

3416人在讀
34萬字總字數
¥64.9定價

內容簡介

本書從JVM和JavaAPI兩個方面,深入地介紹了Java8和Java11等新的Java長期支持版本中影響性能的因素。本書先從Java應用程序的通用方法、基準測試的缺陷、性能監控工具等方面,分析瞭如何通過JVM的配置方式影響程序的性能;接着從即時編譯、垃圾回收、堆內存與原生內存最佳實踐、線程與同步的性能等方面,分析了常見的優化方向及其特性。第2版專注於更加成熟的Java8和Java11,主要的更新內容涉及G1垃圾回收器和Java飛行記錄器,以及Java在容器化環境下的性能變化。

讀者書評

★★★★★

關於這個例子中的典型用法,有一件有趣的事情。在每次調用calc()方法時,使用匿名類的代碼都會創建一個新的對象。如果該方法被調用的次數很多(在測量其性能的基準測試中必須如此),那麼該匿名類的大量實例會被快速創建並丟棄。正如你在第5章中看到的那樣,這種用法往往對性能影響不大。分配對象(和更重要的初始化對象)的成本非常低,而且它們會被快速地丟棄,所以它們並不會真正地減慢垃圾回收器的速度。然而,當在納秒範圍內進行測量時,這些微小的時間會累加起來。 表中的最後一行使用了提前構造的對象,而不是匿名類: private IntegerInterface a1 = new IntegerInterface() { public int getInt() { return 1; } }; // ……其他接口也是如此…… public void calc() { return a1.get() + a2.get() + a3.get(); } 而Lambda的典型用法並不會在循環的每次迭代中創建新的對象,在某些邊界情況下,這有利於其性能。不過,即便在這個例子中,這種差異也非常小。 Lambda和匿名類加載 此差異會顯現出來的一種邊界情況,發生在啓動和類加載的過程中。在看到Lambda的代碼時,你可能會認爲,它是創建匿名類的語法糖。但這並不是它的工作原理,Lambda的代碼會創建一個靜態方法,該方法通過一個特殊的幫助類來調用。匿名類是真正的Java類,它有單獨的類文件,並會通過類加載器加載。 正如你在本章前幾節看到的那樣,類加載的性能很重要,特別是在類路徑很長的時候。所以,啓動有很多匿名類(相對於有很多Lambda)的應用程序,可能會出現比這裏更大的差異。 快速小結 ·使用Lambda還是匿名類,具體選擇應當由編程的方便程度來決定,因爲它們的性能幾乎沒有區別。 ·Lambda並不是通過匿名類實現的,所以上一條有一個例外情況,即在類加載很重要的環境中,Lambda會稍快一些。

★★★★★

提到很多知識,在別的地方瞭解不到,算是有深度也有廣度,有點不好的就是隻有部分章節寫的很詳細和系統

★★★★★

內容詳實,垃圾回收那部分講的比較細。

★★★★★

還不錯。看技術書籍,最好看老外寫的,最好看經典的

★★★☆☆

翻譯的讀起來有點喫力,沒有第一版翻譯的好,比如過早優化那節:第二版的翻譯是"大部分時間裏,比如在97%的時間裏,我們不應該對細枝末節進行優化",第一版的翻譯是"不要把大量的時間耗費在微小的性能提升上"

★★★★★

書籍挺好,對性能優化的幾個方面進行了切入,從系統級底層到JVM到JDK,逐步完善解釋優化點,但正如作者所說,性能優化不僅僅是技術操作更兼具藝術處理的範疇,這在某種程度上反而使性能優化的工作平添許多探索真相的美感。

★★★★★

非常不錯的一本書,我還會讀第二遍

★★★☆☆

比較適合剛剛學java不久的人吧,大部分觀點在深入理解java虛擬機裏面有,而且更全.

★★★★★

對垃圾回收調優講解比較細 可用於線上性能優化參考

書籍信息

作者斯科特·奧克斯
譯者黨文亮
出版社人民郵電出版社
出版時間2022-03-01
ISBN9787115587367
分類計算機-編程設計
格式EPUB
完結狀態連載中
章節數91