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