最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java虛擬機(jī)

 更新時(shí)間:2008年01月30日 20:58:10   作者:  
java虛擬機(jī)
眾所周知,jvm的內(nèi)存是受限的,一為機(jī)器的體系架構(gòu),二為操作系統(tǒng)本身。
x86,x86-64,SPARC,.....的內(nèi)存映射是不同,而各操作系統(tǒng)的內(nèi)存管理機(jī)制也有區(qū)別。
以下是來(lái)自http://fengyouhua.javaeye.com/blog/58170 
1. Heap設(shè)定與垃圾回收J(rèn)ava Heap分為3個(gè)區(qū),Young,Old和Permanent。Young保存剛實(shí)例化的對(duì)象。當(dāng)該區(qū)被填滿時(shí),GC會(huì)將對(duì)象移到Old區(qū)。Permanent區(qū)則負(fù)責(zé)保存反射對(duì)象,本文不討論該區(qū)。JVM的Heap分配可以使用-X參數(shù)設(shè)定,
-Xms
初始Heap大小
-Xmx
java heap最大值
-Xmn
young generation的heap大小
JVM有2個(gè)GC線程。第一個(gè)線程負(fù)責(zé)回收Heap的Young區(qū)。第二個(gè)線程在Heap不足時(shí),遍歷Heap,將Young 區(qū)升級(jí)為Older區(qū)。Older區(qū)的大小等于-Xmx減去-Xmn,不能將-Xms的值設(shè)的過(guò)大,因?yàn)榈诙€(gè)線程被迫運(yùn)行會(huì)降低JVM的性能。
為什么一些程序頻繁發(fā)生GC?有如下原因:
l         程序內(nèi)調(diào)用了System.gc()或Runtime.gc()。
l         一些中間件軟件調(diào)用自己的GC方法,此時(shí)需要設(shè)置參數(shù)禁止這些GC。
l         Java的Heap太小,一般默認(rèn)的Heap值都很小。
l         頻繁實(shí)例化對(duì)象,Release對(duì)象。此時(shí)盡量保存并重用對(duì)象,例如使用StringBuffer()和String()。
         如果你發(fā)現(xiàn)每次GC后,Heap的剩余空間會(huì)是總空間的50%,這表示你的Heap處于健康狀態(tài)。許多Server端的Java程序每次GC后最好能有65%的剩余空間。經(jīng)驗(yàn)之談:
1ServerJVM最好將-Xms-Xmx設(shè)為相同值。為了優(yōu)化GC,最好讓-Xmn值約等于-Xmx1/3[2]。
2.一個(gè)GUI程序最好是每1020秒間運(yùn)行一次GC,每次在半秒之內(nèi)完成[2]。
注意:
1.增加Heap的大小雖然會(huì)降低GC的頻率,但也增加了每次GC的時(shí)間。并且GC運(yùn)行時(shí),所有的用戶線程將暫停,也就是GC期間,Java應(yīng)用程序不做任何工作。
2.Heap大小并不決定進(jìn)程的內(nèi)存使用量。進(jìn)程的內(nèi)存使用量要大于-Xmx定義的值,因?yàn)镴ava為其他任務(wù)分配內(nèi)存,例如每個(gè)線程的Stack等。
2.Stack的設(shè)定
每個(gè)線程都有他自己的Stack。
-Xss
每個(gè)線程的Stack大小
Stack的大小限制著線程的數(shù)量。如果Stack過(guò)大就好導(dǎo)致內(nèi)存溢漏。-Xss參數(shù)決定Stack大小,例如-Xss1024K。如果Stack太小,也會(huì)導(dǎo)致Stack溢漏。
3.硬件環(huán)境
硬件環(huán)境也影響GC的效率,例如機(jī)器的種類,內(nèi)存,swap空間,和CPU的數(shù)量。
如果你的程序需要頻繁創(chuàng)建很多transient對(duì)象,會(huì)導(dǎo)致JVM頻繁GC。這種情況你可以增加機(jī)器的內(nèi)存,來(lái)減少Swap空間的使用[2]。
4.4種GC
第一種為單線程GC,也是默認(rèn)的GC。,該GC適用于單CPU機(jī)器。
第二種為Throughput GC,是多線程的GC,適用于多CPU,使用大量線程的程序。第二種GC與第一種GC相似,不同在于GC在收集Young區(qū)是多線程的,但在Old區(qū)和第一種一樣,仍然采用單線程。-XX:+UseParallelGC參數(shù)啟動(dòng)該GC。
第三種為Concurrent Low Pause GC,類似于第一種,適用于多CPU,并要求縮短因GC造成程序停滯的時(shí)間。這種GC可以在Old區(qū)的回收同時(shí),運(yùn)行應(yīng)用程序。-XX:+UseConcMarkSweepGC參數(shù)啟動(dòng)該GC。
第四種為Incremental Low Pause GC,適用于要求縮短因GC造成程序停滯的時(shí)間。這種GC可以在Young區(qū)回收的同時(shí),回收一部分Old區(qū)對(duì)象。-Xincgc參數(shù)啟動(dòng)該GC。

相關(guān)文章

  • SpringBoot分頁(yè)的實(shí)現(xiàn)與long型id精度丟失問(wèn)題的解決方案介紹

    SpringBoot分頁(yè)的實(shí)現(xiàn)與long型id精度丟失問(wèn)題的解決方案介紹

    在以后的開(kāi)發(fā)中,當(dāng)全局唯一id的生成策略生成很長(zhǎng)的Long型數(shù)值id之后會(huì)超過(guò)JS對(duì)Long型數(shù)據(jù)處理的能力范圍,可能發(fā)生精度丟失而造成后端方法失效,我們要學(xué)會(huì)解決。分頁(yè)功能雖然簡(jiǎn)單但是非常重要,對(duì)于剛接觸項(xiàng)目的人一定要重點(diǎn)注意
    2022-10-10
  • Java實(shí)現(xiàn)二維碼、條形碼功能(案例代碼)

    Java實(shí)現(xiàn)二維碼、條形碼功能(案例代碼)

    ZXing是一個(gè)開(kāi)放源碼的,用Java實(shí)現(xiàn)的多種格式的1D/2D條碼圖像處理庫(kù),它包含了聯(lián)系到其他語(yǔ)言的端口,Zxing可以實(shí)現(xiàn)使用手機(jī)的內(nèi)置的攝像頭完成條形碼的掃描及解碼,這篇文章主要介紹了Java實(shí)現(xiàn)二維碼、條形碼等功能,需要的朋友可以參考下
    2024-01-01
  • Ubuntu 16.04 安裝 java 8的方法

    Ubuntu 16.04 安裝 java 8的方法

    這篇文章主要介紹了Ubuntu 16.04 安裝 java 8的方法,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-05-05
  • Java修改maven的默認(rèn)jdk版本為1.7的方法

    Java修改maven的默認(rèn)jdk版本為1.7的方法

    這篇文章主要介紹了Java修改maven的默認(rèn)jdk版本為1.7的方法,需要的朋友可以參考下
    2018-02-02
  • Spring?Validation實(shí)現(xiàn)數(shù)據(jù)校驗(yàn)的示例

    Spring?Validation實(shí)現(xiàn)數(shù)據(jù)校驗(yàn)的示例

    Spring?Validation其實(shí)就是對(duì)Hibernate?Validator進(jìn)一步的封裝,方便在Spring中使用,這篇文章主要介紹了Spring?Validation實(shí)現(xiàn)數(shù)據(jù)校驗(yàn)的示例,需要的朋友可以參考下
    2023-03-03
  • Android開(kāi)發(fā)中實(shí)現(xiàn)用戶注冊(cè)和登陸的代碼實(shí)例分享

    Android開(kāi)發(fā)中實(shí)現(xiàn)用戶注冊(cè)和登陸的代碼實(shí)例分享

    這篇文章主要介紹了Android開(kāi)發(fā)中實(shí)現(xiàn)用戶注冊(cè)和登陸的代碼實(shí)例分享,只是實(shí)現(xiàn)基本功能,界面華麗度就請(qǐng)忽略啦XD 需要的朋友可以參考下
    2015-12-12
  • 基于java計(jì)算買賣股票的最佳時(shí)機(jī)

    基于java計(jì)算買賣股票的最佳時(shí)機(jī)

    這篇文章主要介紹了基于java計(jì)算買賣股票的最佳時(shí)機(jī),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-10-10
  • JavaCV?本地視頻推流實(shí)現(xiàn)依賴示例

    JavaCV?本地視頻推流實(shí)現(xiàn)依賴示例

    這篇文章主要為大家介紹了JavaCV?本地視頻推流實(shí)現(xiàn)的依賴示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-08-08
  • springboot多租戶設(shè)計(jì)過(guò)程圖解

    springboot多租戶設(shè)計(jì)過(guò)程圖解

    這篇文章主要介紹了springboot多租戶設(shè)計(jì)過(guò)程圖解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-12-12
  • Java中結(jié)束循環(huán)的方法

    Java中結(jié)束循環(huán)的方法

    這篇文章主要介紹了Java中結(jié)束循環(huán)的方法,文中有段代碼在return,結(jié)束了整個(gè)main方法,即使輸出hello world的語(yǔ)句位于循環(huán)體外,也不會(huì)被執(zhí)行,對(duì)java結(jié)束循環(huán)方法感興趣的朋友跟隨小編一起看看吧
    2023-06-06

最新評(píng)論

巴青县| 且末县| 织金县| 新干县| 二手房| 金川县| 蒙山县| 淮北市| 修文县| 威海市| 鄂州市| 伽师县| 高雄市| 东乌珠穆沁旗| 阿拉善盟| 达州市| 精河县| 万山特区| 南京市| 承德县| 武汉市| 庆安县| 江孜县| 黎平县| 全南县| 临颍县| 遂平县| 阳城县| 阿克苏市| 加查县| 霍林郭勒市| 图们市| 芦溪县| 东兴市| 二手房| 常熟市| 永顺县| 克什克腾旗| 塘沽区| 衡阳县| 大竹县|