IT認證考古題|IT認證題庫|IT認證考試信息 --Killtest考古題網

Java 6中的性能優化

Java 6中的性能優化

2010年9月30日 by admin

J2SE 6(代號:Mustang野馬)主要設計原則之壹就是提升J2SE的性能和擴展能力,主要通過最大程度提升運行效率,更好的垃圾收集和壹些客戶端性能來達到。

1、偏向鎖(Biased locking)
Java 6以前加鎖操作都會導致壹次原子CAS(Compare-And-Set)操作,CAS操作是比較耗時的,即使這個鎖上實際上沒有沖突,只被壹個線程擁有,也會帶來較大開銷。為解決這壹問題,Java 6中引入偏向鎖技術,即壹個鎖偏向於第壹個加鎖的線程,該線程後續加鎖操作不需要同步。大概的實現如下:壹個鎖最初為NEUTRAL狀態,當第壹個線程加鎖時,將該鎖的狀態修改為BIASED,並記錄線程ID,當這壹線程進行後續加鎖操作時,若發現狀態是BIASED並且線程ID是當前線程ID,則只設置壹下加鎖標誌,不需要進行CAS操作。其它線程若要加這個鎖,需要使用CAS操作將狀態替換為REVOKE,並等待加鎖標誌清零,以後該鎖的狀態就變成 DEFAULT,常用舊的算法處理。這壹功能可用-XX:-UseBiasedLocking命令禁止。

2、鎖粗化(Lock coarsening)
如果壹段代碼經常性的加鎖和解鎖,在解鎖與下次加鎖之間又沒幹什麽事情,則可以將多次加加鎖解鎖操作合並成壹對。這壹功能可用-XX:-EliminateLocks禁止。

3、自適應自旋(Adaptive spinning)
壹般在多CPU的機器上加鎖實現都會包含壹個短期的自旋過程。自旋的次數不太好決定,自旋少了會導致線程被掛起和上下文切換增加,自旋多了耗CPU。為此Java 6中引入自適應自旋技術,即根據壹個鎖最近自旋加鎖成功概率動態調整自旋次數。

4、常用大內存分布的堆(large page heap)
在大內分頁是x86/amd64架構上用來減小TLB(虛擬地址到物理地址翻譯緩存)大小的TLB失配率。Java 6中的內存堆可以使用這壹技術。

5、提高數組拷貝性能
對每種類型大小寫壹個定制的匯編數組拷貝程序。

6、後臺進行代碼優化
Background Compilation in HotSpot™ Client Compiler: 後臺進行代碼優化

7、線性掃描寄存器分配算法(Linear Scan Register Allocation):
壹種新的寄存器分配策略,基於SSA(static single assignment),性能提高10%左右。常用的寄存器分配算法將寄存器分配看作圖著色問題,時間復雜度是O(n^4),不適用於Java的JIT編譯。原來的JVM裏是根據壹些本地啟發式規則來分配寄存器,效果不太好,Java 6中使用的線性掃描寄存器算法能夠達到與圖顏色算法相似的效果,並且時間復雜度是線性的。

8、並行縮並垃圾收集器(Parallel Compaction Collector)
進行Full GC時使用並行垃圾收集(JDK 5裏原來非Full GC是並行的但Full GC是串行的),使用-XX:+UseParallelOldGC開啟這壹功能

9、並行低停頓垃圾收集器(Concurrent Low Pause Collector)
顯式調用gc(如System.gc)時也可以並行進行標記-清掃式垃圾收集,使用-XX:+ExplicitGCInvokesConcurrent開啟。

10、Ergonomics in the 6.0 Java Virtual Machine
自動調整垃圾收集策略、堆大小等配置,這壹功能在JDK 5中加入,JDK 6中得到顯著增強,SPECjbb2005性能提高70%。

11、boot類裝載器的優化
jre中增加壹個描述package所在jar文件的元索引文件,加快classloader加載類性能,提高桌面Java應用啟動速度(+15%)。內存占用也減少了10%

12、圖形程序優化
在jvm啟動之前顯示splash。

Swing程序中每個窗口有壹個後臺顯示緩存,當該窗口原來被遮擋,現在要顯示時直接從該緩存拷貝數據進行渲染,即使該窗口的繪制線程被阻塞也可以完成這壹渲染。

Posted in: JAVA Tagged: JAVA, java6

分類

標籤

1z0-042 1Z0-851 1Z0-873 70-640 70-642 70-680 220-701 220-702 310-065 640-802 642-813 642-832 642-902 A+ Apple CCDA CCDP CCIE CCNA CCNP CCSP Cisco CIW COMPTIA DBA EMC EMC Certification HCSE HP IBM IBM Certification JAVA Java Standard Edition 6 Programmer Certified Professional Exam JN0-660 Linux LPI MCITP MCSE MCTS Microsoft Network+ Oracle SCJP Security+ SUN

Copyright © 2025 IT認證考古題|IT認證題庫|IT認證考試信息 --Killtest考古題網.

Custom WordPress Theme by themehall.com

  • Viasat Customer Agreement
  • Piercing Agreement Form
  • Isda Cds Agreement
  • Uk Egypt Association Agreement
  • Us New Zealand Trade Agreement
  • Simple Loan Contract between Family
  • What Is the Effect of Termination of a Contract
  • Lupc Framework Agreement
  • The Contractor Fight Reviews
  • Property Management Agreement in Kenya
  • Legal Definition Cancel a Contract
  • South Dakota Vehicle Purchase Agreement
  • Shared Equity Financing Agreement Pennsylvania
  • Sale Agreement Duration
  • Rental Agreement Registration Format
  • Quickpay Agreement Id
  • Investment Agreement Nigeria
  • Party Wall Agreement Details
  • 50 Shades of Grey Agreement Pdf
  • When Does a Cause of Action Accrue for Breach of Contract