posts - 28,  comments - 15,  trackbacks - 0
          JVM內(nèi)部體系結(jié)構(gòu)


          Sun JDK在實現(xiàn)時遵照J(rèn)VM規(guī)范,將內(nèi)存空間劃分為方法區(qū)、堆、本地方法棧、PC寄存器、jvm方法棧。
          方法區(qū)
              方法區(qū)主要存放要加載的類的信息,比如類的名稱、類的修飾符、類中的靜態(tài)變量、final類型的常量、field、method等信息。方法區(qū)是線程共享的,在一定條件下也會被GC,當(dāng)方法區(qū)要使用的內(nèi)存超過其允許的大小時,會拋出OutOfMemory的錯誤信息。
              方法區(qū)的存儲區(qū)域?qū)?yīng)Permanet Generation(又稱,持久代),其默認(rèn)值為{16MB-64MB},它的大小可以通過如下選項進(jìn)行調(diào)整:
                                                      最小值:-XX:PermSize
                                                      最大值:-XX:MaxPermSize

              堆用于存儲新創(chuàng)建的對象和數(shù)組。其大小可以通過如下選項進(jìn)行調(diào)整:
                                                      最小值:-Xms
                                                      最大值:-Xmx
              為了讓內(nèi)存回收更有效率,Sun JDK從1.2開始對堆采用分代管理的方式。
                                  heap = New Generation (新生代)+ Old Generation(舊生代)
              其中,New Generation又可以分為Eden SpaceSurvivor Space,而Survivor Space由兩塊大小相同的區(qū)域組成(通常稱為S0、S1)。那么,Eden Space、S0、S1用途上有什么區(qū)別嗎?先來說說Eden Space,由于堆是線程共享的,因此在堆上分配內(nèi)存是需要加鎖的,這就導(dǎo)致創(chuàng)建對象開銷增大,Sun JDK為了提升內(nèi)存分配的效率,會為每個線程在新生代的Eden Space上分配一塊獨立的空間,這塊空間叫做TLAB(Thread Local Allocation Buffer),因此Eden Space是多個線程獨享的連續(xù)的內(nèi)存區(qū)域,在一個線程內(nèi)創(chuàng)建對象,JVM首先考慮在Eden Space的TLAB上分配,如果對象過大或者TLAB空間已用完,那么將在堆上分配。S0、S1也用于新創(chuàng)建對象的存儲,他們的另外一個用途是在GC時的臨時復(fù)制空間。
                                                     新生代大小值:-Xmn
                                                     Survivor Space大小:-XX:SurvivorRatio
              舊生代主要存放多次GC后仍然存活的對象,不過,新建的對象也有可能在舊生代上分配。一種是大對象(-XX:PretenureSizeThreshold來確定),另一種是大數(shù)組,且數(shù)組未引用外部對象。舊生代大小:
                                                      舊生代大小值=-Xmx 減去 -Xmn
          JVM方法棧
              JVM方法棧是線程私有的,其在內(nèi)存分配上非常高效。當(dāng)JVM方法棧空間不足時,會拋出StackOverflowError的錯誤。JVM方法棧可通過如下選項進(jìn)行調(diào)整:
                                                      JVM方法棧大小:-Xss


          posted on 2011-06-22 16:17 zhangxl 閱讀(998) 評論(0)  編輯  收藏 所屬分類: 優(yōu)化

          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
          <2025年7月>
          293012345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          常用鏈接

          留言簿(1)

          隨筆分類(17)

          隨筆檔案(28)

          文章分類(30)

          文章檔案(30)

          相冊

          收藏夾(2)

          hibernate

          java基礎(chǔ)

          mysql

          xml

          關(guān)注

          壓力測試

          算法

          最新隨筆

          搜索

          •  

          積分與排名

          • 積分 - 96754
          • 排名 - 600

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 禹城市| 嘉祥县| 易门县| 柘荣县| 普兰店市| 城市| 巴林左旗| 宁远县| 城口县| 靖远县| 开化县| 高青县| 灵山县| 千阳县| 霍林郭勒市| 东明县| 禹州市| 延津县| 淮安市| 山阴县| 兴仁县| 鹤峰县| 克东县| 哈尔滨市| 饶河县| 道孚县| 芮城县| 德江县| 平顶山市| 尼勒克县| 恩施市| 鹤庆县| 鄂尔多斯市| 都匀市| 武强县| 青阳县| 瑞昌市| 莱州市| 会昌县| 连江县| 平阳县|