<pre id="bbfd9"><del id="bbfd9"><dfn id="bbfd9"></dfn></del></pre>

          <ruby id="bbfd9"></ruby><p id="bbfd9"><mark id="bbfd9"></mark></p>

          <p id="bbfd9"></p>

          <p id="bbfd9"><cite id="bbfd9"></cite></p>

            <th id="bbfd9"><form id="bbfd9"><dl id="bbfd9"></dl></form></th>

            <p id="bbfd9"><cite id="bbfd9"></cite></p><p id="bbfd9"></p>
            <p id="bbfd9"><cite id="bbfd9"><progress id="bbfd9"></progress></cite></p>
            java語言

            Java性能優化的技巧

            時間:2025-05-25 00:17:02 java語言 我要投稿

            Java性能優化的技巧

              導語:要對你的 java 代碼進行優化,需要理解 java 不同要素之間的相互作用,以及它是如何與其運行時的操作系統進行交互的。使用下面這五個技巧和資源,開始學習如何分析和優化你的代碼吧。

              1。 調整垃圾收集(GC)

              由于垃圾收集的復雜性,很難發現你的應用的準確性能。不過,如果你真的想優化你的應用,你應該相應地處理垃圾收集。通用的準則是調整GC設置并同時執行性能分析。

              一旦你對結果感到滿意,你可以停止該過程并尋求其他優化方式。確保除了在平均事務處理時間之外,你還留心了異常值。這些異常值是造成Java應用緩慢的真正的罪魁禍首并且很難找到。

              此外,你要明白應用運行期間性能下降的效應。在每單個cpu時鐘內的緩慢操作是可以忽略的,但在每單個數據庫事務中的緩慢操作則是非常昂貴的消耗。但是你應該根據性能短板選擇你的優化策略,并應該根據工作負載來優化應用。

              2。 正確地選擇適合你的GC算法

              讓我們更深入地探討GC優化。畢竟,GC優化是要處理的整個優化問題中最基本的。目前,Java中有四種供你選擇的垃圾收集算法。每種算法滿足不同的需求,因此你要選擇(適合你的需求的)。很多開發人員正是因為不了解GC算法而未能優化他們的應用。

              這四個算法分別是串行回收器,并行/吞吐量回收器,CMS回收器和G1回收器。想要了解更多關于每種垃圾收集器的信息及它們是如何工作的,請查看這篇來自Takipi博客的非常棒的文章Garbage Collectors—Serial vs。 Parallel vs。 CMS vs。 G1。 這篇文章同時還討論了Java8對GC算法的影響及其他細節上的改變。

              讓我們再回到GC算法上,根據Understanding Java Garbage Collection這篇文章所述,并發標記和清除GC(即"CMS")算法才是適合網絡服務端應用的最佳算法。并行GC算法適合那些內部可預測的應用。

              G1和CMS是并發操作的理想選擇,但仍然會引起(應用)頻繁停頓。實際的選擇取決于你如何取舍。舉例來說,盡管選擇并行算法會帶來更長的GC停頓時間,但相較于其他GC算法,選擇并行算法仍是一個好主意。

              3。Java 堆

              Java內存堆在迎合內存需求方面擔任了至關重要角色。通常更好的做法是初始時分配最小的堆,然后通過持續的測試不斷增加它的大小。大多數時候優化問題都可以通過增加堆的大小解決,但如果存在大量的GC開銷,則該解決方案不起作用。

              GC開銷還會使吞吐量急劇下降,進而使得應用難以形容的慢。此外,及早調整GC可以幫助你避免堆大小分配的問題。開始的時候,你可以選擇任何1GB到8GB的堆大小。當你選擇正確的堆大小,老生代和新生代對象的概念也就不需要了。

              總而言之,堆大小應該取決于老生代和新生代對象的比率,之前的GC優化和對象集合(即所有對象占用的內存大小)。

              4。 關鍵應用優化

              關鍵代碼優化是優化你的Java應用最好的方式。如果你的應用對GC和堆優化沒有反應,那么最好是做架構改進并關注于你的應用是如何處理信息的。使用聰明的算法并管理好對象就能解決大量的問題,包括內存碎片,堆大小問題和垃圾收集的問題。

              5。使用最優的函數

              Java提供了多個函數來提升算法效率。如果你使用StringBuilder代替簡單的String,你可以得到微乎其微的性能提升。不過,我們還有其他方式在代碼層面進行優化。讓我們看看下面這些優化方法。

              使用StringBuilder代替+操作符。

              避免使用iterator()。

              多使用棧帶來的好處。

              避免使用正則表達式,使用Apache Commons Lang作為代替。

              遠離遞歸。遞歸會占用大量資源!


            【Java性能優化的技巧】相關文章:

            Java性能優化技巧大全07-12

            Java編程性能優化技巧分享08-11

            Java 性能優化的五大技巧08-12

            Java編程性能優化技巧有哪些08-07

            Java性能優化的五大技巧08-25

            PHP性能優化的技巧07-18

            PHP性能優化技巧09-22

            PS性能優化通用技巧11-01

            PHP性能優化小技巧06-27

                    <pre id="bbfd9"><del id="bbfd9"><dfn id="bbfd9"></dfn></del></pre>

                    <ruby id="bbfd9"></ruby><p id="bbfd9"><mark id="bbfd9"></mark></p>

                    <p id="bbfd9"></p>

                    <p id="bbfd9"><cite id="bbfd9"></cite></p>

                      <th id="bbfd9"><form id="bbfd9"><dl id="bbfd9"></dl></form></th>

                      <p id="bbfd9"><cite id="bbfd9"></cite></p><p id="bbfd9"></p>
                      <p id="bbfd9"><cite id="bbfd9"><progress id="bbfd9"></progress></cite></p>
                      飘沙影院