過了段時間沒寫日志了,今天有空寫下,下面寫的是jvm相關(guān)的概念及調(diào)優(yōu),開發(fā)的朋友平時可以讀讀其他的書,比如散文方面,為人處世方面的。
1、-XX:+PrintGC 每次觸發(fā)GC的時候打印相關(guān)日志
-XX:+UseSerialGC 串行回收
-XX:+PrintGCDetails 更詳細的GC日志
-Xms 堆初始值
-Xmx 堆最大可用值
-Xmn 新生代堆最大可用值
-XX:SurvivorRatio 用來設(shè)置新生代中eden空間和from/to空間的比例.
-XX:NewRatio 配置新生代與老年代占比 1:2
含以-XX:SurvivorRatio=eden/from=den/to
總結(jié):在實際工作中,我們可以直接將初始的堆大小與最大堆大小相等,
這樣的好處是可以減少程序運行時垃圾回收次數(shù),從而提高效率。
-XX:SurvivorRatio 用來設(shè)置新生代中eden空間和from/to空間的比例.
創(chuàng)新互聯(lián)公司從2013年開始,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項目網(wǎng)站制作、成都做網(wǎng)站網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元浦城做網(wǎng)站,已為上家服務(wù),為浦城各地企業(yè)和個人服務(wù),聯(lián)系電話:18980820575
2、虛擬機棧溢出
錯誤原因: java.lang.StackOverflowError 棧內(nèi)存溢出
棧溢出?產(chǎn)生于遞歸調(diào)用,循環(huán)遍歷是不會的,但是循環(huán)方法里面產(chǎn)生遞歸調(diào)用,?也會發(fā)生棧溢出。
解決辦法:設(shè)置線程最大調(diào)用深度
-Xss5m 設(shè)置最大調(diào)用深度
3、內(nèi)存溢出與內(nèi)存泄漏區(qū)別
Java內(nèi)存泄漏就是沒有及時清理內(nèi)存垃圾,導(dǎo)致系統(tǒng)無法再給你提供內(nèi)存資源(內(nèi)存資源耗盡);
而Java內(nèi)存溢出就是你要求分配的內(nèi)存超出了系統(tǒng)能給你的,系統(tǒng)不能滿足需求,于是產(chǎn)生溢出。
內(nèi)存溢出,這個好理解,說明存儲空間不夠大。就像倒水倒多了,從杯子上面溢出了來了一樣。
內(nèi)存泄漏,原理是,使用過的內(nèi)存空間沒有被及時釋放,長時間占用內(nèi)存,最終導(dǎo)致內(nèi)存空間不足,而出現(xiàn)內(nèi)存溢出。
4、串行與并行收集器
串行回收: JDK1.5前的默認算法 缺點是只有一個線程,執(zhí)行垃圾回收時程序停止的時間比較長
并行回收: 多個線程執(zhí)行垃圾回收適合于吞吐量的系統(tǒng),回收時系統(tǒng)會停止運行
5、serial收集器
串行收集器是最古老,最穩(wěn)定以及效率高的收集器,可能會產(chǎn)生較長的停頓,只使用一個線程去回收。新生代、老年代使用串行回收;新生代復(fù)制算法、老年代標(biāo)記-壓縮;垃圾收集的過程中會Stop The World(服務(wù)暫停)
6、一個單線程的收集器,在進行垃圾收集時候,必須暫停其他所有的工作線程直到它收集結(jié)束。
特點:CPU利用率最高,停頓時間即用戶等待時間比較長。
適用場景:小型應(yīng)用
通過JVM參數(shù)-XX:+UseSerialGC可以使用串行垃圾回收器。
當(dāng)前標(biāo)題:JVM參數(shù)調(diào)優(yōu)(一)
文章網(wǎng)址:http://www.rwnh.cn/article8/jdceip.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信公眾號、定制開發(fā)、移動網(wǎng)站建設(shè)、關(guān)鍵詞優(yōu)化、手機網(wǎng)站建設(shè)、云服務(wù)器
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)