java必读书籍_最佳5本Java性能调优书籍–精选,必读
java必讀書(shū)籍
為什么Java開(kāi)發(fā)人員應(yīng)該閱讀有關(guān)性能調(diào)優(yōu)的書(shū)? 當(dāng)我很久以前第一次面對(duì)這個(gè)問(wèn)題時(shí),我以為以后會(huì)做,但是我很長(zhǎng)一段時(shí)間都沒(méi)有回過(guò)頭來(lái)。 僅當(dāng)我在用Java編寫(xiě)的任務(wù)關(guān)鍵型服務(wù)器端財(cái)務(wù)應(yīng)用程序中遇到嚴(yán)重的性能和可伸縮性問(wèn)題時(shí),我才意識(shí)到自己缺乏對(duì)性能測(cè)量,調(diào)試和查找瓶頸的知識(shí),這是我的錯(cuò)誤。 的確,當(dāng)您真正需要它時(shí),您將學(xué)習(xí)最多,但是那些時(shí)間并不是學(xué)習(xí)基礎(chǔ)知識(shí)的最佳時(shí)間,實(shí)際上,這些時(shí)間是應(yīng)用并糾正您的誤解的時(shí)間。 這就是為什么我與所有Java程序員共享這些Java性能書(shū)籍 ,并建議他們花一些時(shí)間至少閱讀一本完整的書(shū)籍。 順便提一下,這些書(shū)除了我的5本必讀之書(shū)之外,還適合Java程序員 。 請(qǐng)記住,有關(guān)性能調(diào)優(yōu)的知識(shí)是高級(jí)Java開(kāi)發(fā)人員的重要方面之一,可以使您與眾不同。 自將Java引入20年前以來(lái),它就一直因其速度慢和性能不足而受到批評(píng)。 今天,就本地語(yǔ)言的性能而言,我認(rèn)為Java不會(huì)落后。 鑒于Java具有使用JIT(及時(shí)編譯器)本地編譯熱代碼的能力,它幾乎可以與用C和C ++編寫(xiě)的本地應(yīng)用程序相提并論,但是可以通過(guò)遵循最佳實(shí)踐,避免常見(jiàn)的性能陷阱并使用最新工具來(lái)完成很多工作。和技術(shù)。 在本文中,我將介紹有關(guān)Java性能的五本一本不錯(cuò)的書(shū),它們不僅會(huì)教您測(cè)量什么,如何測(cè)量,而且還將解釋這些問(wèn)題背后的基礎(chǔ)知識(shí)和概念。 您不僅將了解運(yùn)行Java應(yīng)用程序的系統(tǒng)和JVM,還將學(xué)習(xí)如何使用Java API編寫(xiě)更快的代碼。 因此,我們還等什么呢,讓我們開(kāi)始探索有關(guān)Java性能調(diào)優(yōu)的書(shū)籍。
一言以蔽之,這是當(dāng)前有關(guān)Java性能優(yōu)化的最佳書(shū)籍 。 造成這種情況的原因有很多,其中之一是,這是一本最新的書(shū),涵蓋了Java 7更新40。要學(xué)習(xí)性能調(diào)整,您應(yīng)該了解工具,過(guò)程,選項(xiàng),最重要的是避免常見(jiàn)的性能陷阱 。 本書(shū)在這一點(diǎn)上得分很高,它的章節(jié)介紹了Java性能工程師應(yīng)該意識(shí)到的所有工具,包括Java 7u40中添加的工具,例如Flight Recorder和Java Mission Control。 它也有很好的章節(jié)介紹各種垃圾收集算法,例如并發(fā)標(biāo)記掃描(CMS)和G1垃圾收集器。 您將學(xué)習(xí)它們?cè)诓煌瑮l件下如何工作,如何監(jiān)視它們以及如何對(duì)其進(jìn)行調(diào)整。 它還包括一整章有關(guān)堆分析和優(yōu)化的內(nèi)容。 這將教您一些常見(jiàn)的知識(shí),例如如何用Java進(jìn)行堆轉(zhuǎn)儲(chǔ)和直方圖,然后介紹許多減少堆內(nèi)存占用的方法 。 它還有一章介紹JDBC和JPA性能。 關(guān)鍵點(diǎn)在于,它告訴您如何選擇適當(dāng)?shù)腏DBC / JPA方法可能遠(yuǎn)遠(yuǎn)超過(guò)了SQL查詢(xún)調(diào)整帶來(lái)的收益。 同樣,它有一章完整的章節(jié)介紹了有關(guān)多線(xiàn)程問(wèn)題,陷阱和對(duì)性能的影響。 它包括高級(jí)主題,例如ForkJoinPool和Java 8 Streams。 它還基于同步和錯(cuò)誤共享,調(diào)整JVM線(xiàn)程(例如線(xiàn)程堆棧大小),配置有偏鎖,線(xiàn)程優(yōu)先級(jí)和線(xiàn)程旋轉(zhuǎn)的成本。 順便說(shuō)一下,到目前為止還沒(méi)有介紹什么,本書(shū)中最喜歡的II是第12章。本章介紹了一些經(jīng)典的Java核心調(diào)優(yōu)技巧及其影響。 這包括緩沖的I / O,類(lèi)加載,隨機(jī)數(shù)生成,JNI,異常,字符串性能,日志記錄,Java Collections API,Java 8 lambda和vs匿名類(lèi),最后是Java 8流和多個(gè)過(guò)濾器性能。 這實(shí)際上是我閱讀的第一章,我愛(ài)上了它的內(nèi)容和風(fēng)格。 如果您想自己快速評(píng)估本書(shū),建議您從本章開(kāi)始。 它還基于Java EE性能,解釋了XML和JSON解析以及對(duì)象序列化的可能問(wèn)題。
長(zhǎng)期以來(lái),這是我最喜歡的Java性能書(shū),直到最近閱讀Scott Oaks撰寫(xiě)的Java Performance The Definitive Guide。 這本書(shū)非常相似,就像從頂部取代它的那本書(shū)一樣。 它的章節(jié)解釋了如何進(jìn)行性能測(cè)量,并解釋了測(cè)量CPU,內(nèi)存和IO所需的工具。 有關(guān)解釋垃圾收集工作原理的章節(jié),不同的GC算法(例如串行垃圾收集器與并行垃圾收集器,并發(fā)標(biāo)記掃描收集器等)。Binu John和Charlie Hunt在如何構(gòu)造實(shí)驗(yàn)以發(fā)現(xiàn)優(yōu)化機(jī)會(huì),解釋結(jié)果并采取行動(dòng)方面做得非常出色。有效的行動(dòng)。 為了給您一些信譽(yù)并暗示您在本書(shū)中可以期望得到的結(jié)果,Charlie Hunt是Oracle的JVM性能首席工程師。 他負(fù)責(zé)改善HotSpot JVM和Java SE類(lèi)庫(kù)的性能。 他還參與了改善Oracle GlassFish和Oracle WebLogic Server的性能的工作,Binu John是Ning,Inc.的高級(jí)性能工程師,他致力于改善Ning平臺(tái)的性能和可伸縮性,以支持?jǐn)?shù)百萬(wàn)的頁(yè)面瀏覽量。每月。 在此之前,他在Sun Microsystems工作了十多年,從事與Java有關(guān)的性能問(wèn)題,并在Sun的Enterprise Java Performance團(tuán)隊(duì)中任職。 如果您還沒(méi)有閱讀過(guò)有關(guān)Java性能調(diào)優(yōu)的書(shū),并且想為解決性能問(wèn)題打下良好的基礎(chǔ),那么這本書(shū)是您可以購(gòu)買(mǎi)的書(shū)。 每花一分錢(qián)都是值得的。
系統(tǒng)性能分析是所有計(jì)算機(jī)用戶(hù)的一項(xiàng)重要技能,無(wú)論您是要了解筆記本電腦運(yùn)行緩慢的原因,還是要優(yōu)化大規(guī)模生產(chǎn)環(huán)境的性能。 它是對(duì)操作系統(tǒng)(內(nèi)核)和應(yīng)用程序性能的研究,本書(shū)將告訴您所有您需要了解的有關(guān)Linux性能監(jiān)視和調(diào)整的知識(shí)。 程序員從優(yōu)化算法,數(shù)據(jù)結(jié)構(gòu),JVM, 垃圾收集器開(kāi)始,但是最終它們達(dá)到了系統(tǒng)性能發(fā)揮作用的地步。 您可能想知道為什么磁盤(pán)操作在開(kāi)發(fā)設(shè)備上如此之快,但卻成為生產(chǎn)設(shè)備上的主要問(wèn)題,CPU緩存如何對(duì)您的應(yīng)用程序產(chǎn)生如此大的影響,如何利用L1,L2和L3緩存以及物理內(nèi)存在您的機(jī)器上可用。 我認(rèn)為,這是每位程序員的書(shū),不僅是Java程序員的書(shū)。 對(duì)于真正對(duì)性能調(diào)優(yōu)感興趣的任何開(kāi)發(fā)人員來(lái)說(shuō),了解系統(tǒng)的工作方式,分頁(yè),交換和虛擬內(nèi)存的工作方式,CPU如何從磁盤(pán)獲取數(shù)據(jù),不同類(lèi)型的磁盤(pán)如何對(duì)受IO綁定的Java應(yīng)用程序產(chǎn)生深遠(yuǎn)影響都是非常重要的。 我經(jīng)常說(shuō), 學(xué)習(xí)JVM,但現(xiàn)在我可以說(shuō)您必須非常了解您的系統(tǒng)。 知道操作系統(tǒng)的基本知識(shí),系統(tǒng)調(diào)用,內(nèi)存,CPU,網(wǎng)絡(luò)和磁盤(pán)IO肯定會(huì)走很長(zhǎng)一段路,并可以幫助您以任何編程語(yǔ)言(包括Java)編寫(xiě)高性能應(yīng)用程序。
這是一本有關(guān)Java性能調(diào)整和編寫(xiě)在Java中執(zhí)行速度更快的代碼的主要書(shū)籍之一。 杰克第一次寫(xiě)這本書(shū)時(shí),幾乎沒(méi)有可用的東西。 甚至本書(shū)的第二版都已經(jīng)有11年的歷史了,大約在2003年發(fā)行。為什么我會(huì)推薦11年前寫(xiě)的東西呢? 因?yàn)樗恍┙ㄗh,實(shí)踐和技術(shù),這些建議,實(shí)踐和技術(shù)即使在今天也是永恒且值得了解的。 盡管您不能按照本書(shū)的原始精神來(lái)學(xué)習(xí)本書(shū),但應(yīng)始終牢記,本書(shū)中提到的大多數(shù)內(nèi)容已在后續(xù)的Java版本中得到解決。 最好的建議是在第一章中,這本書(shū)告訴我Java應(yīng)用程序的性能將受到CPU,內(nèi)存和IO(磁盤(pán)和網(wǎng)絡(luò))這三個(gè)主要因素的限制,令人驚訝的是,許多知道如何使用事件探查器的開(kāi)發(fā)人員不知道這個(gè)基本事實(shí)。 我讀過(guò)的經(jīng)典建議“不要調(diào)整您不需要調(diào)整的內(nèi)容”是最好的性能建議。 您可以看一下本書(shū)中給出的性能檢查表,以了解什么是重要的,什么不是什么。 盡管這本書(shū)還介紹了許多性能分析工具,但是我建議使用諸如Scott Performances撰寫(xiě)的Java Performance The Definitive Guide和Binu John撰寫(xiě)的Java Performance這樣的最新書(shū)籍,Charlie Hunt擁有更多最新列表。 您應(yīng)該記住,本書(shū)不僅僅涉及JDK 1.4.0。 但是您應(yīng)該查看第4至12章,其中涵蓋了可應(yīng)用于Java代碼的各種性能提示和技術(shù)。 Jack還擁有一個(gè)站點(diǎn)http://www.javaperformancetuning.com/ ,該站點(diǎn)對(duì)于學(xué)習(xí)Java開(kāi)發(fā)人員的性能調(diào)優(yōu)非常有用。
在介紹這本書(shū)之前,讓我介紹作者,他是PHD,在Vmware工作,專(zhuān)門(mén)研究高性能和可伸縮的企業(yè)Java應(yīng)用程序,但是我認(rèn)為他以“軟件性能和可伸縮性:定量方法”而著稱(chēng)。 。 您可以在本書(shū)中看到他早期暢銷(xiāo)書(shū)的更專(zhuān)業(yè)版本。 顧名思義,這本書(shū)專(zhuān)注于Java應(yīng)用程序的性能和可伸縮性。 這本書(shū)對(duì)Java開(kāi)發(fā)人員,架構(gòu)師甚至管理人員都有好處。 它分為兩個(gè)主要部分,第一部分介紹Java性能和可伸縮性的基礎(chǔ)知識(shí),第二部分介紹提高性能和可伸縮性的實(shí)踐。 基礎(chǔ)部分包含四章,每章分別探討軟件程序,計(jì)算機(jī)硬件和Java虛擬機(jī)的可伸縮性。 第二部分包含各章,探討從32位到64位如何影響 Java應(yīng)用程序的性能和可伸縮性。 第6章可能是最重要的一章,它解釋了如何調(diào)整Java以獲得最佳的性能和可伸縮性。 它介紹了方法,實(shí)踐,工具和調(diào)整Java應(yīng)用程序時(shí)要牢記可伸縮性。 第7章是另一個(gè)重要的章節(jié),它解釋了設(shè)計(jì),算法和實(shí)現(xiàn)如何影響任何Java應(yīng)用程序的性能和可伸縮性。 它還介紹了如何執(zhí)行瓶頸分析。 好在他用示例程序解釋了所有這些,因此您可以在閱讀時(shí)遵循準(zhǔn)則。 總體而言,對(duì)于Java性能工程師來(lái)說(shuō),這是一本非常獨(dú)特的好書(shū),如果您喜歡閱讀多本書(shū)籍以獲取洞見(jiàn),那么您可以將其與Java Performance The Definitive Guide and System Performance:Enterprise and Cloud一起閱讀 。
這是給讀者的好書(shū),我不會(huì)說(shuō)這本書(shū)只關(guān)注Java性能調(diào)優(yōu),但我會(huì)說(shuō)這是每個(gè)現(xiàn)代Java開(kāi)發(fā)人員都應(yīng)該擁有的書(shū)。 Ben Evans和Martjin Verburg不需要任何介紹。 他們是著名的Java專(zhuān)家和jClarity的創(chuàng)始人, jClarity有望解決云環(huán)境中的性能問(wèn)題。 他們?cè)贘ava方面擁有多年的經(jīng)驗(yàn),這在他們的《 The Well-Grounded Java Developer:Java 7的重要技術(shù)和多語(yǔ)言編程》中得到了體現(xiàn)。 我在2012年首次接觸這本書(shū),在閱讀了示例章節(jié)之后,我被說(shuō)服了買(mǎi)這本書(shū)。 這是現(xiàn)代Java開(kāi)發(fā)人員必讀的書(shū)。 它說(shuō)明了Java上的新更改,包括JDK 7中的更改,例如try-with-resources,NIO2.0和并發(fā)更改。 但最重要的是,它解釋了為什么向JVM添加新功能如此昂貴。 添加新的庫(kù)擴(kuò)展(例如fork / join或語(yǔ)法糖,如switch-on-string)相對(duì)容易,但添加JVM指令(如invokedynamic)則非常昂貴。 關(guān)于這本書(shū)的最好的事情可能是它不僅會(huì)停留在Java上,而且還會(huì)進(jìn)一步介紹現(xiàn)代JVM語(yǔ)言,例如Scala,Clojure和Groovy。 它使用新的JVM語(yǔ)言和現(xiàn)代方法來(lái)接觸函數(shù)式編程,以測(cè)試,構(gòu)建和有爭(zhēng)議的Java應(yīng)用程序集成。
這就是所有優(yōu)秀的Java性能調(diào)優(yōu)書(shū)籍的清單 。 我已經(jīng)推薦了很多有效的Java知識(shí),并且作為一本面向Java開(kāi)發(fā)人員的書(shū),但同時(shí)我也發(fā)現(xiàn)您應(yīng)該有一本專(zhuān)門(mén)針對(duì)Java性能調(diào)優(yōu)的書(shū)。 經(jīng)過(guò)幾年的Java工作和經(jīng)驗(yàn),您將不可避免地面臨性能挑戰(zhàn),這時(shí)您應(yīng)該至少了解發(fā)現(xiàn)瓶頸和提高Java應(yīng)用程序性能的基本知識(shí),工具和過(guò)程。 因此,如果您還沒(méi)有閱讀任何Java性能書(shū)籍,那么這是閱讀該書(shū)的時(shí)候。
翻譯自: https://www.javacodegeeks.com/2014/07/top-5-java-performance-tuning-books-best-of-lot-must-read.html
java必讀書(shū)籍
總結(jié)
以上是生活随笔為你收集整理的java必读书籍_最佳5本Java性能调优书籍–精选,必读的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: ddos高防价格(抗ddos产品硬件多少
- 下一篇: 安卓声音修改器下载(安卓声音修改)