程式設計技巧整理:Java程式效能最佳化總結!

陝西優就業發表於2019-01-08

程式的效能受程式碼質量的直接影響。在本文中, 陝西優就業 小編主要介紹一些程式碼編寫的小技巧和慣例,這些技巧有助於在程式碼級別上提升系統效能。

1、慎用異常

在Java軟體開發中,經常使用 try-catch 進行錯誤捕獲,但是,try-catch 語句對系統效能而言是非常糟糕的。雖然在一次 try-catch中,無法察覺到它對效能帶來的損失,但是,一旦try-catch被應用於迴圈之中,就會給系統效能帶來極大的傷害。

2、使用區域性環境

呼叫方法時傳遞的引數以及在呼叫中建立的臨時變數都儲存在棧(Stack)中,速度較快。其他變數,如靜態變數、例項變數等,都在堆(Heap)中建立,速度較慢。

程式設計技巧整理:Java程式效能最佳化總結! 3、位運算代替乘除法

在所有的運算中,位運算是最為高效的。因此,可以嘗試使用位運算代替部分算術運算,來提高系統的執行速度。

4、替換switch

關鍵字 switch 語句用於多條件判斷, switch 語句的功能類似於 if-else 語句,兩者效能也差不多。因此,不能說 switch 語句會降低系統的效能。但是,在絕大部分情況下,switch 語句還是有效能提升空間的。

5、一維陣列代替二維陣列

由於陣列的隨機訪問的效能非常好,許多JDK類庫,如ArrayList、Vector等都是使用了陣列作為其陣列實現。但是,作為軟體開發人員也必須知道,一位陣列和二維陣列的訪問速度是不一樣的。一位陣列的訪問速度要優於二維陣列。因此,在效能敏感的系統中要使用二維陣列的,可以嘗試透過可靠地演算法,將二維陣列轉為一維陣列再進行處理,以提高系統的響應速度。

6、提取表示式

在軟體開發過程中,程式設計師很容易有意無意讓程式碼做一些“重複勞動”,在大部分情況下,由於計算機的告訴執行,這些“重複勞動”並不會對效能構成太大的威脅,但若將系統效能發揮到極致,提取這些“重複勞動”相當有意義。

7、展開迴圈

與前面所介紹的最佳化技巧略有不同,筆者認為展開迴圈是一種在極端情況下使用的最佳化手段,因為展開迴圈很可能會影響程式碼的可讀性和可維護性,而這兩者對軟體系統來說也是極為重要的。但是,當效能問題成為系統主要矛盾時,展開迴圈絕對是一種值得嘗試的技術。

8、布林運算代替位運算

雖然位運算的速度遠遠高於算術運算,但是在條件判斷時,使用位運算替代布林運算卻是非常錯誤的選擇。

9、使用arrayCopy()

陣列複製是一項使用頻率很高的功能,JDK中提供了一個高效的API來實現它:

如果在應用程式需要進行陣列複製,應該使用這個函式,而不是自己實現。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69902581/viewspace-2374980/,如需轉載,請註明出處,否則將追究法律責任。

相關文章