- 相關(guān)推薦
Java程序性能的調優(yōu)
Java 技術(shù)具有卓越的通用性、高效性、平臺移植性和安全性,廣泛應用于PC、數據中心、游戲控制臺、科學(xué)超級計算機、移動(dòng)電話(huà)和互聯(lián)網(wǎng),同時(shí)擁有全球最大的開(kāi)發(fā)者專(zhuān)業(yè)社群。下面小編準備了關(guān)于Java程序性能調優(yōu)的文章,提供給大家參考!
在《Java TM Platform Performance》一書(shū)中,定義了如下五個(gè)方面來(lái)作為評判性能的標準:
1) 運算的性能——哪一個(gè)算法的執行性能最好?
2) 內存的分配——程序運行時(shí)需要耗費多少內存?
3) 啟動(dòng)的時(shí)間——程序啟動(dòng)需要多長(cháng)時(shí)間?這在Web項目中的影響不大,但要注意部分程序需要部署或運行在客戶(hù)端時(shí)的情形(比如applet程序)。
4) 程序的可伸縮性——在壓力負載的情況下,程序的性能如何?
5) 性能的感知——用戶(hù)在什么情況下會(huì )覺(jué)得程序的性能不好?
以上五個(gè)方面,在具體的使用場(chǎng)景可以有選擇的去評判。至于這五方面的性能調優(yōu),在后續的章節中將會(huì )陸續的給以相應的性能調優(yōu)策略。
調優(yōu)的規則
我們只需要關(guān)心對我們程序有影響,可以察覺(jué)到的性能問(wèn)題,而不是每一個(gè)類(lèi)中的每一個(gè)方法我們都需要想方設法的提高性能。如果程序的性能沒(méi)有達到我們所期望的要求,我們才需要考慮如何優(yōu)化性能。同樣的,晦澀的代碼雖然提高了程序的性能,但同時(shí)可能帶給我們的是維護的噩夢(mèng)。我們需要折中的考慮以上兩種情況,使得程序的代碼是優(yōu)美的,并且運行的足夠快,達到客戶(hù)所期望的性能要求。
優(yōu)化代碼甚至會(huì )導致不良的結果,Donald Knuth(一位比較牛比較有影響的人物,具體是誰(shuí),我也忘了,誰(shuí)知道,可以告訴我一下,謝謝!)曾說(shuō)過(guò),“Premature optimization is the root of all evil”。在開(kāi)始性能調優(yōu)前,需要先指出不優(yōu)化代碼的一些理由。
1) 如果優(yōu)化的代碼已經(jīng)正常工作,優(yōu)化后可能會(huì )引入新的bug;
2) 優(yōu)化代碼趨向于使代碼更難理解和維護;
3) 在一個(gè)平臺上優(yōu)化的代碼,在另一個(gè)平臺上可能更糟;
4) 花費很多時(shí)間在代碼的優(yōu)化上,提高了很少的性能,卻導致了晦澀的代碼。 確實(shí),在優(yōu)化前,我們必須認真的考慮是否值得去優(yōu)化。
調優(yōu)的步驟
一般我們提高應用程序的性能劃分為以下幾個(gè)步驟:
1) 明確應用程序的性能指標,怎樣才符合期望的性能需求;
2) 在目標平臺進(jìn)行測試;
3) 如果性能已經(jīng)達到性能指標,Stop;
4) 查找性能瓶頸;
5) 修改性能瓶頸;
6) 返回到第2步。
【Java程序性能的調優(yōu)】相關(guān)文章:
影響Java EE性能的因素10-05
如何編譯java程序09-28
Java程序開(kāi)發(fā)與運行環(huán)境06-21
sun認證java程序員07-20
java程序中如何調用linux命令08-27
初級java程序員面試要求06-02