java效能優化方案6 避免遞迴

2021-09-22 18:55:32 字數 263 閱讀 3051

6、避免遞迴

現在,類似scala這樣的函式式程式語言都鼓勵使用遞迴。因為遞迴通常意味著能分解到單獨個體優化的尾遞迴(tail-recursing)。如果你使用的程式語言能夠支援那是再好不過。不過即使如此,也要注意對演算法的細微調整將會使尾遞迴變為普通遞迴。

希望編譯器能自動探測到這一點,否則本來我們將為只需使用幾個本地變數就能搞定的事情而白白浪費大量的堆疊框架(stack frames)。

小結這節中沒什麼好說的,除了在 n.o.p.e 分支盡量使用迭代來代替遞迴。

JAVA效能優化

1.string 比stringbuffer 更佔記憶體空間,拼接字串時 原因 string 這個物件的實際占用記憶體數量與其自身的位元組數不相符。結論 應該少用string 這東西,特別是string 的 操作,不僅原來的string 物件 不能繼續使用,而且又要產生多個新物件,因此會較高的占用記...

java效能優化

1.減少gc的壓力,gc 執行緒是乙個優先順序比較低的執行緒,他是乙個守護執行緒 服務於主線程 我們的堆記憶體 2.盡量避免我們的new操作 總結 避免物件建立和gc 物件使用完成後進行置空 string string a new string a string a1 a string a2 a b...

JAVA效能優化

多使用區域性變數,減少使用靜態變數。區域性變數被建立在棧中,訪問速度快。靜態變數則是在堆記憶體 避免使用finalize,該方法會給gc增添很大的負擔 如果是單執行緒,盡量使用非多執行緒安全的,因為執行緒安全來自於同步機制,同步機制會降低效能。例如,單執行緒程式,能使用hashmap,就不要用has...