Java程序性能的調優
Java 技術具有卓越的通用性、高效性、平台移植性和安全性,廣泛應用於PC、數據中心、遊戲控制枱、科學超級計算機、移動電話和互聯網,同時擁有全球最大的開發者專業社羣。下面小編準備了關於Java程序性能調優的文章,提供給大家參考!
在《Java TM Platform Performance》一書中,定義瞭如下五個方面來作為評判性能的標準:
1) 運算的性能——哪一個算法的執行性能最好?
2) 內存的分配——程序運行時需要耗費多少內存?
3) 啟動的時間——程序啟動需要多長時間?這在Web項目中的影響不大,但要注意部分程序需要部署或運行在客户端時的情形(比如applet程序)。
4) 程序的可伸縮性——在壓力負載的情況下,程序的性能如何?
5) 性能的感知——用户在什麼情況下會覺得程序的性能不好?
以上五個方面,在具體的使用場景可以有選擇的去評判。至於這五方面的性能調優,在後續的章節中將會陸續的給以相應的性能調優策略。
調優的規則
我們只需要關心對我們程序有影響,可以察覺到的性能問題,而不是每一個類中的每一個方法我們都需要想方設法的提高性能。如果程序的性能沒有達到我們所期望的要求,我們才需要考慮如何優化性能。同樣的,晦澀的代碼雖然提高了程序的性能,但同時可能帶給我們的是維護的噩夢。我們需要折中的考慮以上兩種情況,使得程序的代碼是優美的`,並且運行的足夠快,達到客户所期望的性能要求。
優化代碼甚至會導致不良的結果,Donald Knuth(一位比較牛比較有影響的人物,具體是誰,我也忘了,誰知道,可以告訴我一下,謝謝!)曾説過,“Premature optimization is the root of all evil”。在開始性能調優前,需要先指出不優化代碼的一些理由。
1) 如果優化的代碼已經正常工作,優化後可能會引入新的bug;
2) 優化代碼趨向於使代碼更難理解和維護;
3) 在一個平台上優化的代碼,在另一個平台上可能更糟;
4) 花費很多時間在代碼的優化上,提高了很少的性能,卻導致了晦澀的代碼。 確實,在優化前,我們必須認真的考慮是否值得去優化。
調優的步驟
一般我們提高應用程序的性能劃分為以下幾個步驟:
1) 明確應用程序的性能指標,怎樣才符合期望的性能需求;
2) 在目標平台進行測試;
3) 如果性能已經達到性能指標,Stop;
4) 查找性能瓶頸;
5) 修改性能瓶頸;
6) 返回到第2步。
-
Java認證輔導:Java實現二叉樹遍歷算法
Java實現二叉樹遍歷算法在JAVA中實現二叉樹,程序如下://********************************************************************//filename://purpose:testabinarytreewithjava//date:2002/12/18//author:flyfan//ver:0.1//****************************************...
-
Java獲取當前的系統時間的方法
在java中,我們可以利用程序獲取當前的'系統時間,那麼你知道該怎麼獲取嗎?下面跟yjbys小編一起來學習一下吧!一、獲取當前系統時間和日期並格式化輸出:import;importleDateFormat;publicclassNowString{publicstaticvoidmain(String[]args){SimpleDateFormatdf=ne...
-
JavaWeb(J2EE)面試題及答案
1、JSP如何處理運行時異常(run-time)exceptions?可以使用頁面的errorPage屬性捕獲沒有處理的運行時異常,然後自動轉向到一個錯誤處理頁面,代碼如下:如果在頁面請求時出現運行時異常是,以上代碼會把頁面轉向到JSP頁面,在裏面,可以通過以下代碼定義這個頁面是錯誤處理...
-
Java main方法經典面試題及答案
本文是yjbys小編認為比較經典的關於Javamain方法的面試題,與其説是Java面試題,其實也是Java的一些最基礎知識問題,分享給大家,希望對大家面試有所幫助!1.不用main方法如何定義一個類?不行,沒有main方法我們不能運行Java類。在Java7之前,你可以通過使用靜態初始化運行...