Java背後的秘密之如何開發出高效能Java程式05

來源:互聯網
上載者:User

1、開發高效能Java程式的原則和方法:
決定一個Java程式效能的好壞,是多方面的因素,包括前期的系統結構設計、底層平台架構設計、應用開發中的代碼編寫以及技巧的使用,系統平台的軟體配置,系統平台的硬體效能等等。這裡只給出代碼編寫方面的一些原則和方法。

相對於Java的其他方面,在效能領域Java飽受的非議可能最多。許多人認為,Java如果想更好的發展下去必須解決效能問題。然而真正的事實是Java在編譯器、JVM以及運行期最佳化方面確實在不斷的進步,Java正在啟動並執行越來越快。實際上很多的效能問題,是由於設計不佳引起的,與Java本身並無關係。在拙劣的設計和編碼面前,無論你使用多少運行期最佳化,無論你的編譯技術多麼先進,無論你的硬體平台效能多麼強大,最後的代碼運行依然低效。

同樣無論運行期最佳化技術、編譯技術以及硬體平台多麼強大,運用一些已被驗證對Java運行效能有益的技術,總是能獲得非常好的收益。

最佳化程式碼的注意事項:
1.除非必須最佳化,否則不要輕易改動;
2.改動之後要進行仔細的測試;
3.在各個JVM產品中,最佳化的方式是有區別的;

2、高效能Java的編碼原則:
(1)、先把焦點放在設計、資料結構和演算法身上;
(2)、不要依賴於編譯器編譯期最佳化技術,正確理解運行期代碼最佳化技術以及正確使用運行期代碼最佳化;
(3)、使用StringBuffer類完成字串串連;
(4)、將對象建立成本降至最低,即盡量建立輕量級對象;
                1、合理設計對象大小
                2、合理設計類的繼承深度
                3、類的建構函式要短小精幹
                4、不要建立非必要的對象
                5、將對象的建立拖延到最後一刻,即消極式載入技術
                6、可能的話要自己實現一個對象緩衝管理池,將對象的建立與回收控制在一個合理的範圍內
(5)、降低同步化帶來的影響;
                1、合理識別是否一定要使用同步控制,盡量從設計上避免
                2、注意控制同步代碼範圍,避免對線程活躍度造成影響
                3、合理使用鎖變數,做到線程分離,提高程式並發度,更進一步提高程式輸送量
                4、用於鎖變數的對象不宜過多,當要使用多個對象作為鎖變數時,一定要確保在代碼中自始自終按照同樣的順序鎖定它們,否則可能導致死結
(6)、儘可能使用Stack變數和基本類型完成必要的任務;
(7)、使用static、final、private方法以促成inlining;
(8)、執行個體變數初始化一次就好;(即一定義就會有一個初始值,下面不需要再進行一次初始化)
(9)、叢集類對象的處理;
                1、如何正確遍曆叢集類?
                2、如何複製數組元素?
                3、如何正確選擇使用合適的叢集類?
(10)、儘可能重用對象;
(11)、使用消極式載入技術;

當然上面都是理論方法,實踐需要靠大家自己去了,兩個代碼實在不知道那種效能更好,javap看位元組碼執行,看步驟,這是最土的方法,卻是最能說服自己的證據!

轉載來源www.boobooke.com/bbs->J2EE專區->藍山作品—Java背後的秘密(匯總) 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.