- Java性能權(quán)威指南(第2版)
- (美)斯科特·奧克斯
- 851字
- 2022-05-09 14:52:33
第1章 導(dǎo)論
本書討論Java性能優(yōu)化的藝術(shù)與科學(xué)。
Java性能優(yōu)化是一門科學(xué),這樣說并不令人驚訝:關(guān)于性能的討論包含大量數(shù)字、評測和分析。大部分性能優(yōu)化工程師擁有科學(xué)類的學(xué)科背景,而且實(shí)現(xiàn)最佳性能的關(guān)鍵就是嚴(yán)謹(jǐn)?shù)剡\(yùn)用科學(xué)方法。
那么Java性能優(yōu)化是藝術(shù)嗎?性能優(yōu)化既是一門科學(xué),又是一門藝術(shù),這種說法并不新鮮,但是我們在討論性能時(shí)很少明確地承認(rèn)這一點(diǎn)。部分原因是“藝術(shù)”的概念與我們的調(diào)試過程相悖。對于一些人來說,看起來是藝術(shù)的東西,基本上都基于豐富的知識和經(jīng)驗(yàn)。而足夠先進(jìn)的技術(shù)和魔法無異,就像對于圓桌騎士來說,手機(jī)真的擁有魔法。同理,優(yōu)秀的性能優(yōu)化工程師的工作成果猶如藝術(shù)作品,只不過這些藝術(shù)作品源于淵博的知識、豐富的經(jīng)驗(yàn)和敏銳的直覺。
本書不能在經(jīng)驗(yàn)和直覺方面提供幫助,但是可以幫助你積累豐富的知識。積年累月地使用這些知識,能幫助你獲得優(yōu)秀Java性能優(yōu)化工程師的必備技能。本書的目標(biāo)是讓你深入理解Java平臺的性能。
這些知識分為兩大部分。第一部分關(guān)于Java虛擬機(jī)(Java Virtual Machine,JVM)的性能優(yōu)化,即如何通過JVM的配置方式影響程序的性能。使用其他語言的資深開發(fā)人員可能認(rèn)為JVM優(yōu)化有點(diǎn)令人厭煩,但實(shí)際上,JVM優(yōu)化類似于C++程序員在編譯階段測試和挑選編譯器參數(shù),或者PHP程序員在php.ini文件中設(shè)置合適的變量。
第二部分關(guān)于理解Java平臺的特性如何影響性能。注意,這里使用了平臺這個(gè)詞:有些平臺特性(比如線程和同步)是Java語言的一部分,而有些平臺特性(比如字符串處理)是Java標(biāo)準(zhǔn)API的一部分。盡管Java語言和Java API有著顯著的區(qū)別,但在本書中,兩者會被同等對待。這兩方面在本書中都會講到。
JVM的性能主要取決于標(biāo)志優(yōu)化,而平臺的性能更多地取決于是否在代碼中應(yīng)用了最佳實(shí)踐。一直以來,開發(fā)人員只負(fù)責(zé)編寫代碼,性能優(yōu)化組只負(fù)責(zé)測試并提出性能優(yōu)化建議,這兩方面被認(rèn)為是獨(dú)立的專業(yè)領(lǐng)域。這種區(qū)分從來就不太有用,因?yàn)槿魏问褂肑ava工作的人都應(yīng)該理解代碼在JVM中的行為,也應(yīng)該知道什么樣的優(yōu)化有助于提升性能。當(dāng)項(xiàng)目轉(zhuǎn)向DevOps模式后,這種區(qū)分開始變得模糊。只有全面掌握領(lǐng)域內(nèi)的知識,才能讓你的作品更具藝術(shù)氣息。
- 大學(xué)計(jì)算機(jī)基礎(chǔ)實(shí)驗(yàn)教程
- Android開發(fā)精要
- 重學(xué)Java設(shè)計(jì)模式
- PLC編程與調(diào)試技術(shù)(松下系列)
- C程序設(shè)計(jì)實(shí)踐教程
- Odoo 10 Implementation Cookbook
- Python Interviews
- JavaScript+jQuery網(wǎng)頁特效設(shè)計(jì)任務(wù)驅(qū)動教程
- 大學(xué)計(jì)算機(jī)基礎(chǔ)實(shí)驗(yàn)指導(dǎo)
- 青少年P(guān)ython趣味編程
- HTML5+CSS3+jQuery Mobile+Bootstrap開發(fā)APP從入門到精通(視頻教學(xué)版)
- C語言從入門到精通(微視頻精編版)
- Java EE框架開發(fā)技術(shù)與案例教程
- Node.js核心技術(shù)教程
- Mastering Puppet(Second Edition)