• <samp id="mz5ne"><acronym id="mz5ne"></acronym></samp>
      <ol id="mz5ne"></ol>
    1. <samp id="mz5ne"></samp>
      <mark id="mz5ne"></mark>

        <fieldset id="mz5ne"></fieldset>

        免费看又黄又无码的网站_久久久高清国产免费观看_亚洲一区二区三区在线免费观看_免费欧洲美女a视频一级毛片_日本最新免费二区三区

        ×

        JVM虛擬機調優(yōu)簡單分析

        • 作者:新網(wǎng)
        • 來源:新網(wǎng)
        • 瀏覽:100
        • 2018-04-23 14:31:06

        內存溢出和內存泄漏是什么,是怎么發(fā)生的的呢?內存溢出和內存泄漏它們的區(qū)別是什么?應該怎么做防護措施呢?小編接介紹一下吧。

         20150619_8403fcf6dfb222b5192aXUt8c7bgg9Ko.jpg

                內存溢出和內存泄漏是什么,是怎么發(fā)生的的呢?內存溢出和內存泄漏它們的區(qū)別是什么?應該怎么做防護措施呢?小編接介紹一下吧。

          內存溢出和內存泄漏有什么區(qū)別:

          內存泄漏是由于使用不當,把一部分內存“丟掉了”,導致這部分內存不可用。

          當在堆中創(chuàng)建了對象,后來沒有使用這個對象了,又沒有把整個對象的相關引用設為null。此時垃圾收集器會認為這個對象是需要的,就不會清理這部分內存。這就會導致這部分內存不可用。

          所以內存泄漏會導致可用的內存減少,進而會導致內存溢出。

          內存泄露問題排查方法:

          用visualVM工具分析堆快照 ,如果發(fā)生內存泄漏:

          step1:找出泄漏的對象

          step2:找到泄漏對象的GC Root

          step3:根據(jù)泄漏對象和GC Root找到導致內存泄漏的代碼

          step4:想法設法解除泄漏對象與GCRoot的連接

          如果不存在泄漏:

          看下是否能增大jvm堆的最大容量,優(yōu)化程序,減小對象的生命周期

          前期準備:

          當發(fā)生堆溢出的時候,可以讓程序在崩潰時產(chǎn)生一份堆內存快照

          產(chǎn)生堆內存快照的方法:

          給jvm加上參數(shù)XX:+HeapDumpOnOutofMemoryError,這樣就會在程序崩潰的時候,產(chǎn)生一份堆內存快照

          分析堆內存快照我建議用jdk自帶的可視化監(jiān)視工具visualVM,位置在jdk安裝目錄下的bin,如果是在Linux環(huán)境的話,可以把快照傳到window。因為分析工具會占用很大的內存,不建議在服務端進行分析。

          解決方法:

          針對StackOverflowError:

          1.首先棧溢出會輸出異常信息,根據(jù)信息查看對應的方法調用是否出現(xiàn)無限調用、或者棧幀過大等代碼邏輯上的問題,通過修改代碼邏輯解決;

          2.如果確確實實需要更大的棧容量,可以檢查并調大棧容量:-Xss16m。

          內存泄露的跡象:老年代每次垃圾回收的時候,總是不能全部回收,一次比一次占用的內存多。

          針對OutOfMemoryError:

          首先檢查是否創(chuàng)建過多的線程,減少線程數(shù)

          有了堆信息查看方面的功能,我們一般可以順利解決以下問題:

          --年老代年輕代大小劃分是否合理

          --內存泄漏

          --垃圾回收算法設置是否合理

          內存泄漏的現(xiàn)象:

          常常地,程序內存泄漏的最初跡象發(fā)生在出錯之后,在你的程序中得到一個OutOfMemoryError。

          這種典型的情況發(fā)生在產(chǎn)品環(huán)境中,而在那里,你希望內存泄漏盡可能的少,調試的可能性也達到最小。

          一個OutOfMemoryError常常是內存泄漏的一個標志,有可能應用程序的確用了太多的內存;這個時候,你既不能增加JVM的堆的數(shù)量,也不能改變你的程序而使得他減少內存使用。

          但是,在大多數(shù)情況下,一個OutOfMemoryError是內存泄漏的標志。一個解決辦法就是繼續(xù)監(jiān)聽GC的活動,看看隨時間的流逝,內存使用量是否會增加,如果有,程序中一定存在內存泄漏。

        <div

        免責聲明:本文內容由互聯(lián)網(wǎng)用戶自發(fā)貢獻自行上傳,本網(wǎng)站不擁有所有權,也不承認相關法律責任。如果您發(fā)現(xiàn)本社區(qū)中有涉嫌抄襲的內容,請發(fā)送郵件至:operations@xinnet.com進行舉報,并提供相關證據(jù),一經(jīng)查實,本站將立刻刪除涉嫌侵權內容。

        免費咨詢獲取折扣

        Loading
        国产精品视频白浆免费视频_久久久高清国产免费观看_亚洲一区二区三区在线免费观看_免费欧洲美女a视频一级毛片
      1. <samp id="mz5ne"><acronym id="mz5ne"></acronym></samp>
          <ol id="mz5ne"></ol>
        1. <samp id="mz5ne"></samp>
          <mark id="mz5ne"></mark>

            <fieldset id="mz5ne"></fieldset>
            宣汉县| 宿松县| 三台县| 安新县| 华阴市| 玛多县| 安国市| 女性| 内丘县| 抚顺县| 桦川县| 剑阁县| 汝州市| 凤山县| 德钦县| 汉川市| 开化县| 唐山市| 秦安县| 莱州市| 杭锦后旗| 沾化县| 砚山县| 舟曲县| 榆社县| 都昌县| 宝丰县| 和田县| 卓尼县| 开阳县| 乳山市| 高邮市| 滕州市| 华蓥市| 金湖县| 许昌县| 梁山县| 阿城市| 湟源县| 赤城县| 徐汇区|