第 章 Java性能調(diào)優(yōu)概述
專注于為中小企業(yè)提供成都網(wǎng)站設計、網(wǎng)站建設服務,電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業(yè)贛縣免費做網(wǎng)站提供優(yōu)質的服務。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了成百上千家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設實現(xiàn)規(guī)模擴充和轉變。
性能概述
看懂程序的性能
性能的參考指標
木桶原理與性能瓶頸
Amdahl定律
設計調(diào)優(yōu)
代碼調(diào)優(yōu)
JVM調(diào)優(yōu)
數(shù)據(jù)庫調(diào)優(yōu)
操作系統(tǒng)調(diào)優(yōu)
優(yōu)化的一般步驟
系統(tǒng)優(yōu)化注意事項
小結
第 章設計優(yōu)化
善用設計模式
單例模式( )
單例模式( )
單例模式( )
代理模式( )
代理模式( )
代理模式( )
代理模式( )
代理模式( )
代理模式( )
代理模式( )
享元模式( )
享元模式( )
裝飾者模式( )
裝飾者模式( )
裝飾者模式( )
裝飾者模式( )
觀察者模式( )
觀察者模式( )
觀察者模式( )
Value Object模式( )
Value Object模式( )
業(yè)務代理模式( )
業(yè)務代理模式( )
緩沖(Buffer)( )
緩沖(Buffer)( )
緩存(Cache)( )
緩存(Cache)( )
緩存(Cache)( )
對象復用 池 ( )
對象復用 池 ( )
對象復用 池 ( )
對象復用 池 ( )
對象復用 池 ( )
并行替代串行
負載均衡( )
負載均衡( )
負載均衡( )
負載均衡( )
時間換空間
空間換時間
小結
編輯推薦
Java程序設計培訓視頻教程
J EE高級框架實戰(zhàn)培訓視頻教程
J ME移動開發(fā)實戰(zhàn)教學視頻
Visual C++音頻/視頻技術開發(fā)與實戰(zhàn)
Oracle索引技術
lishixinzhi/Article/program/Java/gj/201311/27852
1)盡量指定類、方法的final修飾符。帶有final修飾符的類是不可派生的,Java編譯器會尋找機會內(nèi)聯(lián)所有的final方法,內(nèi)聯(lián)對于提升Java運行效率作用重大,此舉能夠使性能平均提高50%。
2)盡量重用對象。由于Java虛擬機不僅要花時間生成對象,以后可能還需要花時間對這些對象進行垃圾回收和處理,因此生成過多的對象將會給程序的性能帶來很大的影響。
3)盡可能使用局部變量。調(diào)用方法時傳遞的參數(shù)以及在調(diào)用中創(chuàng)建的臨時變量都保存在棧中速度較快,其他變量,如靜態(tài)變量、實例變量等,都在堆中創(chuàng)建速度較慢。
4)慎用異常。異常對性能不利,只要有異常被拋出,Java虛擬機就必須調(diào)整調(diào)用堆棧,因為在處理過程中創(chuàng)建了一個新的對象。異常只能用于錯誤處理,不應該用來控制程序流程。
5)乘法和除法使用移位操作。用移位操作可以極大地提高性能,因為在計算機底層,對位的操作是最方便、最快的,但是移位操作雖然快,可能會使代碼不太好理解,因此最好加上相應的注釋。
6)盡量使用HashMap、ArrayList、StringBuilder,除非線程安全需要,否則不推薦使用 Hashtable、Vector、StringBuffer,后三者由于使用同步機制而導致了性能開銷。
盡量在合適的場合使用單例。使用單例可以減輕加載的負擔、縮短加載的時間、提高加載的效率,但并不是所有地方都適用于單例。
提高JAVA的性能,一般考慮如下的四個主要方面:
(1) 程序設計的方法和模式
一個良好的設計能提高程序的性能,這一點不僅適用于JAVA,也適用也任何的編程語言。因為它充分利用了各種資源,如內(nèi)存,CPU,高速緩存,對象緩沖池及多線程,從而設計出高性能和可伸縮性強的系統(tǒng)。
當然,為了提高程序的性能而改變原來的設計是比較困難的,但是,程序性能的重要性常常要高于設計上帶來的變化。因此,在編程開始之前就應該有一個好的設計模型和方法。
(2) JAVA布署的環(huán)境。
JAVA布署的環(huán)境就是指用來解釋和執(zhí)行JAVA字節(jié)碼的技術,一般有如下五種。即解釋指令技術(Interpreter Technology),及時編譯的技術(Just In Time Compilier Technology), 適應性優(yōu)化技術(Adaptive Optimization Technology), 動態(tài)優(yōu)化,提前編譯為機器碼的技術(Dynamic Optimization,Ahead Of Time Technology)和編譯為機器碼的技術(Translator Technology).
這些技術一般都通過優(yōu)化線程模型,調(diào)整堆和棧的大小來優(yōu)化JAVA的性能。在考慮提高JAVA的性能時,首先要找到影響JAVA性能的瓶頸(BottleNecks),在確認了設計的合理性后,應該調(diào)整JAVA布署的環(huán)境,通過改變一些參數(shù)來提高JAVA應用程序的性能。具體內(nèi)容見第二節(jié)。
(3) JAVA應用程序的實現(xiàn)
當討論應用程序的性能問題時,大多數(shù)的程序員都會考慮程序的代碼,這當然是對的,當更重要的是要找到影響程序性能的瓶頸代碼。為了找到這些瓶頸代碼,我們一般會使用一些輔助的工具,如Jprobe,Optimizit,Vtune以及一些分析的工具如TowerJ Performance等。這些輔助的工具能跟蹤應用程序中執(zhí)行每個函數(shù)或方法所消耗掉的時間,從而改善程序的性能。
(4) 硬件和操作系統(tǒng)
為了提高JAVA應用程序的性能,而采用跟快的CPU和更多的內(nèi)存,并認為這是提高程序性能的唯一方法,但事實并非如此。實踐經(jīng)驗和事實證明,只有遭到了應用程序性能的瓶頸,從而采取適當?shù)梅椒ǎ缭O計模式,布署的環(huán)境,操作系統(tǒng)的調(diào)整,才是最有效的。
3.程序中通常的性能瓶頸。
所有的應用程序都存在性能瓶頸,為了提高應用程序的性能,就要盡可能的減少程序的瓶頸。以下是在JAVA程序中經(jīng)常存在的性能瓶頸。
了解了這些瓶頸后,就可以有針對性的減少這些瓶頸,從而提高JAVA應用程序的性能
4. 提高JAVA程序性能的步驟
為了提高JAVA程序的性能,需要遵循如下的六個步驟。
a) 明確對性能的具體要求
在實施一個項目之前,必須要明確該項目對于程序性能的具體要求,如:這個應用程序要支持5000個并發(fā)的用戶,并且響應時間要在5秒鐘之內(nèi)。但同時也要明白對于性能的要求不應該同對程序的其他要求沖突。
對于很多學習開發(fā)的人員來說,進行性能優(yōu)化是一個非常復雜的問題,并且還需要大量的經(jīng)驗和知識積累。
想要優(yōu)化達到一定的效果是一件非常不容易的事情,很多人認為需要在經(jīng)驗非常豐富的情況下才能使用,其實在沒有獲得豐富經(jīng)驗和知識之前也是可能進行性能優(yōu)化的,廣西電腦培訓認為只要掌握一定的方法和技巧就能創(chuàng)建出性能良好的程序。
在進行性能調(diào)優(yōu)的過程中,主要是基于Java語言,但是也有一些是可以使用在應用程序和編程語言中。
那么在使用之前,廣西IT培訓為大家一起討論通用的性能調(diào)優(yōu)技巧。
1、先不要急著優(yōu)化在必要之前,一定不要急著進行優(yōu)化,這是一種非常重要的性能調(diào)優(yōu)方法。
在進行調(diào)優(yōu)過程中,我們應該遵守最佳的實踐方法,這樣才能得到有效的實現(xiàn)。
但是在使用過程中并不意味著需要證明必要性,最好的方法是使用標準庫或是構建復雜進行優(yōu)化。
在很多情況下,如果過早的進行優(yōu)化會占用很大一部分的時間,還會出現(xiàn)代碼不好讀取和維護的情況。
如果更嚴重,這樣的優(yōu)化是不會帶來任何好處的,很多時候你花費大量時間進行優(yōu)化的程序并非是最關鍵的地方。
2、使用分析器找到瓶頸在確定應用程序的某些部分需要優(yōu)化的時候,應從哪里進行入手呢?解決這種情況主要有兩種方法,廣西IT培訓認為首先就是了解代碼,找出看上去存在問題和可能產(chǎn)生疑惑的地方開始優(yōu)化。
其次是可以使用分析器進行優(yōu)化,分析器能夠獲取代碼中每個部分的性能詳細信息。
3、為應用程序創(chuàng)建測試套件這個一種能夠幫助你避免很多問題的方法,很多問題主要是發(fā)生在性能部署在生產(chǎn)環(huán)境之后。
在使用過程中,你可以定義測試整個應用程序的套件,這樣就能完成性能改造和運行。
在測試運行的過程中,能夠幫助你更改功能和性能的影響,這樣才能讓利大于弊。
如果在使用過程中,你的任務運行于多個應用程序的多個部分,例如數(shù)據(jù)庫、緩存等,這是非常重要的。
進行Java性能調(diào)優(yōu)的技巧有很多種,在進行性能調(diào)優(yōu)的過程中可以選擇適合自己的方法,在提高應用程序的性能中,不需要做大量的工作。
廣西電腦培訓認為最好的方法就是進行稍微努力,這樣就能很好的應用到代碼中。
文章名稱:java代碼提高性能 提高java開發(fā)效率
URL鏈接:http://chinadenli.net/article24/doddice.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供軟件開發(fā)、網(wǎng)站排名、全網(wǎng)營銷推廣、App設計、網(wǎng)頁設計公司、標簽優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)