第 章 Java性能調優概述

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