舊襪子

          一看書(shū)瞌睡就來(lái)了

            BlogJava :: 首頁(yè) :: 聯(lián)系 :: 聚合  :: 管理
            5 Posts :: 0 Stories :: 3 Comments :: 0 Trackbacks

          ???????? 關(guān)于java se的垃圾回收器以前一只都沒(méi)怎么了解,今天一次偶然的機(jī)會(huì).我知道了命令行的java 還有個(gè)參數(shù) -verbose:gc 可以即時(shí)的刷新java程序的內(nèi)存使用情況.用來(lái)測(cè)試的程序就是在不斷的相加兩個(gè)很大的字符串對(duì)象.以下就是程序執(zhí)行時(shí)的輸出信息.

          [GC 409K->233K(1984K), 0.0058250 secs]???//從這到第六行中間的圓括號(hào)里都是1984k.我猜這應(yīng)該是堆的大小吧.
          [GC 718K->510K(1984K), 0.0025204 secs]
          [GC 774K->771K(1984K), 0.0014421 secs]
          [GC 1201K->939K(1984K), 0.0013013 secs]
          [GC 1444K->1274K(1984K), 0.0013242 secs]
          [GC 1687K->1685K(2400K), 0.0017393 secs]???//堆大小變?yōu)?400k,將會(huì)執(zhí)行垃圾回收器
          [Full GC 1685K->532K(2400K), 0.0315082 secs]???
          //這里開(kāi)始啟動(dòng)垃圾回收器,注意后面的時(shí)間,基本上是上面的30倍.可見(jiàn)垃圾回收器是多么的占資源.
          [GC 943K->943K(1984K), 0.0019234 secs]???//執(zhí)行g(shù)c后堆大小變?yōu)?984k
          [GC 1431K->1429K(2228K), 0.0078479 secs]???//堆大小變?yōu)?400k,將會(huì)執(zhí)行垃圾回收器
          [Full GC 1429K->607K(2228K), 0.0260561 secs]???//gc()
          [GC 1093K->1093K(1984K), 0.0017910 secs]???
          [GC 1376K->1374K(1984K), 0.0009124 secs]
          [GC 1654K->1654K(2268K), 0.0015390 secs]
          [Full GC 1654K->682K(2268K), 0.0264760 secs]
          [GC 1563K->1561K(2304K), 0.0019106 secs]???
          [Full GC 1561K->439K(2304K), 0.0331671 secs]
          [GC 757K->757K(1984K), 0.0013675 secs]
          [Full GC 757K->757K(1984K), 0.0263450 secs]
          [GC 1751K->1749K(2340K), 0.0020385 secs]
          [Full GC 1749K->477K(2340K), 0.0268218 secs]
          [GC 833K->833K(1984K), 0.0015278 secs]
          [Full GC 833K->833K(1984K), 0.0245162 secs]
          [GC 1939K->1937K(2696K), 0.0014709 secs]???//(注意紅色)所相加的兩個(gè)字符串已經(jīng)越來(lái)越大,以至頻繁的啟動(dòng)gc,于是擴(kuò)大的堆容量
          [GC 2331K->2331K(3092K), 0.0040047 secs]
          [Full GC 2331K->908K(3092K), 0.0268548 secs]
          ...........


          結(jié)論:java se的垃圾回收器一般是在堆容量超出預(yù)分配時(shí)才會(huì)啟動(dòng),執(zhí)行完畢后,再把堆變成以前的大小.但是如果頻繁的啟動(dòng)gc,VM則會(huì)擴(kuò)大堆容量.如上面的2696k.

          以上都是我根據(jù)打印出的信息所做出的推測(cè),不知道對(duì)不對(duì).歡迎批評(píng).

          [GC 409K->233K(1984K), 0.0058250 secs]? 還有右邊藍(lán)色的部分我不知道是什么意思,希望知道的達(dá)人告訴下.

          posted on 2006-05-16 21:50 舊襪子 閱讀(573) 評(píng)論(2)  編輯  收藏

          Feedback

          # re: 關(guān)于Java SE垃圾回收器的執(zhí)行周期猜想 2006-05-25 19:54 pc
          http://www.kpwang.com/pc/view.jsp?board_id=1&article_id=200648231527
          Java數(shù)據(jù)報(bào)之失序和丟包

          http://www.kpwang.com/pc/view.jsp?board_id=1&article_id=200647215416
          Java新手學(xué)習(xí):IIS6和Tomcat5的整合

          http://www.kpwang.com/pc/view.jsp?board_id=1&article_id=200647172615
          Jakarta-Tomcat 簡(jiǎn)明中文版用戶指南  回復(fù)  更多評(píng)論
            

          # re: 關(guān)于Java SE垃圾回收器的執(zhí)行周期猜想 2006-05-26 16:58 y
          [GC 325407K->83000K(776768K), 0.2300771 secs]
          [GC 325816K->83372K(776768K), 0.2454258 secs]
          [Full GC 267628K->83769K(776768K), 1.8479984 secs]
          上面的三行是 GC 的詳細(xì)輸出,兩次小收集和一次大收集。箭頭前后的兩個(gè)數(shù)字代表 GC 后活的對(duì)象的組合長(zhǎng)度。括號(hào)內(nèi)的數(shù)字代表合計(jì)的空間,等于堆大小減去一片生存空間。  回復(fù)  更多評(píng)論
            


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


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 罗甸县| 明星| 龙江县| 沈阳市| 杭锦后旗| 文登市| 连云港市| 昌都县| 青龙| 甘泉县| 晴隆县| 监利县| 四平市| 丰原市| 大足县| 台安县| 灵台县| 邵阳县| 凤城市| 齐河县| 山东| 肥东县| 亚东县| 棋牌| 余姚市| 宁国市| 丹巴县| 德格县| 沙湾县| 陵水| 平顺县| 唐山市| 大厂| 房产| 巴马| 江津市| 绥滨县| 台北县| 稻城县| 鄂州市| 黑山县|