本文目錄一覽:
- 1、Java 性能調優技巧有哪些
- 2、北大青鳥設計培訓:Java性能調優有哪些技巧?
- 3、java系統怎麼做性能測試調優?是不是掌握了jvm就差不多了?
- 4、北大青鳥java培訓:Java性能調優有哪些技巧?
Java 性能調優技巧有哪些
推薦10種簡單的Java性能優化辦法:
1、使用StringBuilder
2、避免使用正則表達式
3、不要使用iterator()方法
4、不要調用高開銷方法
5、使用原始類型和棧
6、避免遞歸
7、使用entrySet()
8、使用EnumSet或EnumMap
9、優化自定義hasCode()方法和equals()方法
10、考慮使用set而並非單個元素
北大青鳥設計培訓:Java性能調優有哪些技巧?
大多數Java開發人員都認為性能優化是複雜的,需要大量的經驗和知識。
其實這樣的說法是有一定的道理的,一般情況下,優化應用程序以獲得最好的性能不是一件容易的事。
但這並不意味著如果你沒有知識,你什麼也做不了,下面岳陽電腦培訓為大家介紹一些易於遵循的調整方法。
1、必要之前不要優化這可能是最重要的性能調整之一。
您將要根據一般的最佳實踐來高效地實施用例。
但是,這並不意味著在需要之前,必須更換標準庫或進行複雜的優化。
在大多數情況下,過早的優化不僅佔用大量的時間,而且不易讀取代碼,還可以進行維護。
更糟糕的是,岳陽IT培訓發現這些優化通常不能帶來任何好處,而你花費大量時間進行優化是應用程序的一個非關鍵部分。
2、為應用程序創建性能這是另一種常用技術,可幫助您避免在生產後發生的許多意外問題。
岳陽IT培訓認為整個應用程序的性能測試,必須始終定義套件並在性能提高之前和之後運行。
3、處理最大的瓶頸創建測試套件並使用分析器分析應用程序後,您可以列出需要解決的問題,保證提高性能。
這樣非常好,但我還沒有回答你應該從哪裡開始的問題。
北大青鳥建議您可以專註於速效系統,或從最重要的問題開始。
java系統怎麼做性能測試調優?是不是掌握了jvm就差不多了?
JVM是最好的軟體工程之一,它為Java提供了堅實的基礎,許多流行語言如Kotlin、Scala、Clojure、Groovy都使用JVM作為運行基礎。一個專業的Java工程師必須要了解並掌握JVM,接下來就給大家分享Java基礎知識中JVM調優相關知識點。
杭州Java基礎知識學習之JVM調優講解
JVM常見的調優參數包括:
-Xmx:指定java程序的最大堆內存, 使用java -Xmx5000M -version判斷當前系統能分配的最大堆內存;
-Xms:指定最小堆內存, 通常設置成跟最大堆內存一樣,減少GC;
-Xmn:設置年輕代大小。整個堆大小=年輕代大小+年老代大小。所以增大年輕代後,將會減小年老代大小。此值對系統性能影響較大,Sun官方推薦配置為整個堆的3/8;
-Xss:指定線程的最大棧空間, 此參數決定了java函數調用的深度, 值越大調用深度越深, 若值太小則容易出棧溢出錯誤(StackOverflowError);
-XX:PermSize:指定方法區(永久區)的初始值,默認是物理內存的1/64,在Java8永久區移除, 代之的是元數據區,由-XX:MetaspaceSize指定;
-XX:MaxPermSize:指定方法區的最大值, 默認是物理內存的1/4,在java8中由-XX:MaxMetaspaceSize指定元數據區的大小;
-XX:NewRatio=n:年老代與年輕代的比值,-XX:NewRatio=2, 表示年老代與年輕代的比值為2:1;
-XX:SurvivorRatio=n:Eden區與Survivor區的大小比值,-XX:SurvivorRatio=8表示Eden區與Survivor區的大小比值是8:1:1,因為Survivor區有兩個(from, to)。
JVM實質上分為三大塊,年輕代(YoungGen),年老代(Old Memory),及持久代(Perm,在Java8中被取消)。
年輕代大小選擇
響應時間優先的應用:儘可能設大,直到接近系統的最低響應時間限制(根據實際情況選擇)。在此種情況下,年輕代收集發生的頻率也是最小的。同時,減少到達年老代的對象。
吞吐量優先的應用:儘可能的設置大,可能到達Gbit的程度。因為對響應時間沒有要求,垃圾收集可以並行進行,一般適合8CPU以上的應用。
年老代大小選擇
響應時間優先的應用:年老代使用並發收集器,所以其大小需要小心設置,一般要考慮並發會話率和會話持續時間等一些參數。如果堆設置小了,可以會造成內存碎片、高回收頻率以及應用暫停而使用傳統的標記清除方式;如果堆大了,則需要較長的收集時間。最優化的方案,一般需要參考以下數據獲得:並發垃圾收集信息、持久代並發收集次數、傳統GC信息、花在年輕代和年老代回收上的時間比例。
減少年輕代和年老代花費的時間,一般會提高應用的效率。
吞吐量優先的應用:一般吞吐量優先的應用都有一個很大的年輕代和一個較小的年老代。原因是,這樣可以儘可能回收掉大部分短期對象,減少中期的對象,而年老代盡存放長期存活對象。
較小堆引起的碎片問題
因為年老代的並發收集器使用標記、清除演算法,所以不會對堆進行壓縮。當收集器回收時,他會把相鄰的空間進行合併,這樣可以分配給較大的對象。但是,當堆空間較小時,運行一段時間以後,就會出現「碎片」,如果並發收集器找不到足夠的空間,那麼並發收集器將會停止,然後使用傳統的標記、清除方式進行回收。如果出現「碎片」,可能需要進行如下配置:
-XX:+UseCMSCompactAtFullCollection:使用並發收集器時,開啟對年老代的壓縮。
-XX:CMSFullGCsBeforeCompaction=0:上面配置開啟的情況下,這裡設置多少次Full GC後,對年老代進行壓縮。
北大青鳥java培訓:Java性能調優有哪些技巧?
大多數Java開發人員都認為性能優化是複雜的,需要大量的經驗和知識。
其實這樣的說法是有一定的道理的,一般情況下,優化應用程序以獲得最好的性能不是一件容易的事。
但這並不意味著如果你沒有知識,你什麼也做不了,下面河南電腦培訓為大家介紹一些易於遵循的調整方法。
1、必要之前不要優化這可能是最重要的性能調整之一。
您將要根據一般的最佳實踐來高效地實施用例。
但是,這並不意味著在需要之前,必須更換標準庫或進行複雜的優化。
在大多數情況下,過早的優化不僅佔用大量的時間,而且不易讀取代碼,還可以進行維護。
更糟糕的是,河南IT培訓發現這些優化通常不能帶來任何好處,而你花費大量時間進行優化是應用程序的一個非關鍵部分。
2、為應用程序創建性能這是另一種常用技術,可幫助您避免在生產後發生的許多意外問題。
河南IT培訓認為整個應用程序的性能測試,必須始終定義套件並在性能提高之前和之後運行。
3、處理最大的瓶頸創建測試套件並使用分析器分析應用程序後,您可以列出需要解決的問題,保證提高性能。
這樣非常好,但我還沒有回答你應該從哪裡開始的問題。
北大青鳥建議您可以專註於速效系統,或從最重要的問題開始。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/185055.html