jvm性能優(yōu)化 一般的Java項目需要JVM調(diào)優(yōu)嗎?注意哪些?
一般的Java項目需要JVM調(diào)優(yōu)嗎?注意哪些?Java以其開源、高效、跨平臺和良好的生態(tài)環(huán)境成為主流編程語言。即使是以前使用其他技術(shù)棧的公司,現(xiàn)在也在慢慢地向Java平臺遷移。我相信很多Java學(xué)生在
一般的Java項目需要JVM調(diào)優(yōu)嗎?注意哪些?
Java以其開源、高效、跨平臺和良好的生態(tài)環(huán)境成為主流編程語言。即使是以前使用其他技術(shù)棧的公司,現(xiàn)在也在慢慢地向Java平臺遷移。我相信很多Java學(xué)生在面試時都會被問到關(guān)于JVM調(diào)優(yōu)的問題,但是他們似乎很少在日常工作中進(jìn)行JVM調(diào)優(yōu)。您想為一般Java項目進(jìn)行JVM調(diào)優(yōu)嗎?
在我們討論JVM調(diào)優(yōu)之前,讓我們先討論一下JVM。什么是JVM?實際上,JVM是Java虛擬機(jī)的縮寫。Java能夠跨平臺的原因?qū)嶋H上是基于JVM。
盡管JVM本身是一個計算機(jī)程序,但它也有自己的一套軟件和硬件環(huán)境。
就像你買了一臺新電腦。系統(tǒng)安裝后,您可以正常使用計算機(jī)。但是很多用戶需要自定義電腦,比如桌面背景。同樣,JVM安裝后,即使沒有任何額外的設(shè)置,也可以正常工作,但在某些情況下,還需要對JVM進(jìn)行調(diào)優(yōu),而調(diào)優(yōu)的手段就是更改JVM參數(shù)。
JVM調(diào)優(yōu)的目的是使用盡可能少的內(nèi)存和CPU,使Java程序獲得更高的吞吐量和更低的延遲。
2. JVM常用調(diào)優(yōu)項
JVM最常用的調(diào)優(yōu)是更改JVM的默認(rèn)參數(shù),例如:
最大堆大?。?Xmx
新生成大小:-XMN
不朽生成的最小值:-XX:permsize
不朽生成的最大值:-XX:maxpermsize
事實上,JVM的默認(rèn)設(shè)置可以滿足一般項目的需要。似乎只要您更改參數(shù),JVM的調(diào)優(yōu)就非常簡單,但不是我,而是您認(rèn)為的那么簡單。
如果JVM調(diào)優(yōu)不好,會影響整個項目的穩(wěn)定性。在正常情況下,不建議調(diào)優(yōu)JVM,除非Java項目內(nèi)存太高,服務(wù)器內(nèi)存太低。
Java程序員應(yīng)當(dāng)如何向架構(gòu)師的目標(biāo)邁進(jìn)?
首先,我想談?wù)勎覍ㄖ煹睦斫?。架?gòu)師和普通程序員之間有兩個方面:一方面,他們的技術(shù)能力可以解決更多、更復(fù)雜、更困難的事情。如果普通程序員能解決只有架構(gòu)師才能解決的問題,那么普通程序員就會成為架構(gòu)師;另一方面,他們的心態(tài)和責(zé)任感恰恰相反,一般程序員,尤其是初級程序員,遇到問題時,往往會向更有能力的程序員求助。
以下重點介紹Java程序員如何成為架構(gòu)師:
1。扎實的基本功,從基本的數(shù)據(jù)結(jié)構(gòu)到算法,從基本的語法到語言特點,都要熟稔于心,像幾件珍品一樣一一呈現(xiàn)。這可以通過閱讀更多的基礎(chǔ)書籍來學(xué)習(xí)。
2. 在實踐了基本技能之后,我們應(yīng)該更加注重實踐,多思考,多總結(jié),多優(yōu)化項目,從而使項目更加健壯可靠,具有更好的性能和更高的資源利用率。善于總結(jié)。
3. 只有承擔(dān)更多的責(zé)任,做更多的事情,我們才能有更多更廣泛的接觸。尤其是有機(jī)會參與大型項目時,一定要多參與。一般來說,如果我們參與過某一類業(yè)務(wù)的多個大型項目,我們就可以在這個業(yè)務(wù)領(lǐng)域有一定的架構(gòu)參與能力。前提是做好第二點,全面了解項目。
4. 只有多總結(jié),多學(xué)習(xí)新技術(shù),才能跟上潮流,成為受歡迎的架構(gòu)師。過時的建筑師往往沒有地方使用。舉一個不恰當(dāng)?shù)睦?,那些曾?jīng)身處4m內(nèi)存時代的架構(gòu)師,如果他們不跟進(jìn)新技術(shù),就沒有地方使用。
關(guān)注我,定期更新Java生態(tài)系統(tǒng)中的最新技術(shù),歡迎多交流。