00:00
那基于我们刚才讲解的这个内存影响文件之后啊,咱们来看一下这个使用二啊,这个使用二的话呢,包括我们这个使用三,实际上呢,就是针对我们这个其他的option来讲的啊,像这个hi杠黑,就咱们说的使用二啊,其他呢,就是后边这几个,那我们看下这个使用二叫显示对应内存相关的信息啊,这块你看都显示什么信息啊,这里边我们对应的两个指令,一个呢是杠hip,一个是杠histo啊那这块呢,具体什么情况,咱们易操作大家就知道了,对吧?哎,就这个意思啊,那其他这个作用呢,就对应的其他这个参数行,那这块呢,咱们还这样,嗯,把这个程序呢,咱们再给它跑起来啊。化解之后呢,咱们,哎,过来在这个位置呢,咱们首先啊接是吧。然后呢接map,然后咱们先演示一下叫杠hip啊对应的这个进程呢,是3540。行,这就可以了是吧?呃,为了显示方便啊,咱们直接给它写到一个文件里边吧,比如叫a.TXT的文件。
01:01
啊,这就可以了,好接着呢,我们再顺便呢,去调用一下这个叫杠啊。哎,这个我写到另外一个啊,叫做b.T文件里面啊,这就可以了,那我们来看一下这个杠hi和杠hit这两个指定的主要作用是什么,行这块呢,我们使用这个相对路径啊,相当于就存储到我这个,哎宋洪康,哎这个用户下了行这块我们把它呢。关了打开。找到我们这个C盘啊user啊孙洪康,然后往下好,这呢就是我们剩的这两个文件,对吧,把它呢分别打开。哎,这就可以了,行,那第一个呢,是我们使用的叫杠,Hi啊好,我们看一下这个主要作用是什么,这个杠呢,打开之后呢,里边有包括我们堆空间的一个配置信息啊,像咱们这个程序啊,这个程序呢,咱们在设置的时候呢,是不是指定过它相应的这个堆空间的一个大小是吧。哎,对,空间的大小,包括这个新生代里边伊甸园区和我们的survivor区,它的一个比例分配的情况啊,那大家呢,是不是在这儿也能看到我们这里边儿的情况,像这个呃,推空间60兆,然后这个我们相应的新生代。
02:08
啊,新生代这个老年代那这块的一个比例分配啊,都有,包括这个我们这个刚才说的这个survivor ratio啊是八,然后新生代和老年代比例呢,比例呢是1:2啊这个咱们都呃都说过是吧,这是一个默认值行啊这呢是我们这个圆空间的一个大小,相当于这里边儿呢,是不是就列举出来我们对空间的一个比例分配的情况,包括呢,实际的内存大小情况对吧。好,然后再往下的话呢,大家会看到咱们关于这个样generation啊,就是新生代啊,包括下边还有这个对应的老年代啊,它相关的一些内存的占用情况,还有它的容量情况啊,这个伊甸园区啊,16兆这个咱们都很清楚是吧,20里边的80%嘛。啊,这个使用了多少,空闲了多少啊,多少使用了,然后from区to区old的区,哎,你看这块呢,都有展示啊,这里呢,就是相当于展示了什么呀,就是我们在运行的这一刻。
03:03
我在运行的这一刻,我们内存当中是不是这个堆空间的一个占用情况呀。对吧?诶你要从这个角度上来讲,有点儿跟咱们前面讲的这个j state,查看GM这个统计信息的时候呢,是不是多少我们也提过,哎,像这个JC的时候,当然这个GC它主要是跟垃圾回收相关了哈,诶那我们在演示这个GC的时候呢,它也能够显示咱们这个新生代啊,新生代里边这个sur区啊,伊甸园区啊,它的一个呃,总大小和一个实际使用的大小。对吧,哎,跟这呢,是不是有点类似啊。有点类似啊,但是没有人家,呃好在于好呢,就是因为他这块在监控的时候,咱们是不是还可以每隔多长时间,呃,是不是执行一次,或者要执行多少次啊,他会进行一个连续的监控是吧?而我们这里边儿这个监控大家注意,咱们呢,是不是就只是针对这一课的一个监控啊。啊,就是它是一个时间点上的一个监控哈。哎,时间点上的一个监控啊,这一点上的话呢,它比不上人家的这个咱们是用的叫呃j map啊,这个大家注意,我们实时的做一个总结,接map呢,在这一方面展示你堆空间中这个各个部分的容量和它的使用情况,它是时间点上的,它比不上咱们刚才说的这个叫j state。
04:19
因为JS的默认的也是时间点,但是人家可以加那个inter是吧,诶还可以加那个count,它能够达到一定程度上是一个连续,而这个JS stay的话呢,是不是又比不上我们的图形化界面啊。哎,我们说这叫GI,比如说我们说这个A微收VM啊,诶微收VM,咱们在讲这个上篇这个内存或者垃圾回收的时候呢,是不是也用它看一下,看过咱们内存中的这个折线图,有内存的一个实时的变化情况,对吧?哎,他们呢,有一个依次啊,这个优先这个这个这个什么,呃,高级与否的这个关系,你看这块我已经说清楚了啊好,然后呢,我们接着来看这个叫histo啊。这个黑色的话呢,你看打开明显跟我们黑我不一样了,他这里展示的啊,你一看也稍微有点有点什么呀,有点感觉,有点感觉,有点什么感觉呢,呃,咱们在讲这个上篇的时候呢,用这个工具看过,那咱们内存中的一些这个数据的占用情况啊,像咱们刚才那会儿是不是生成的这个叫h pro这个文件是吧?呃,这个文件比如说咱们就顺便打开一下吧。
05:21
哎,我就双击吧。哎,这呢是默认用我这个jpo file呢,打开了啊,打开的时候呢,你会看到咱们在这个jpo file里边,它能够展示咱们这个是不是相应的内存中的这个数据的一个占用情况,你看是吧?哎,内存那个占用情况,哎就是这样的一个情情景啊,包括这个大对象是吧?哎,这个大对象呢是俄release,那肯定是他这块呢有问题,它这块又不能被回收啊,它这个数据越来越大啊造成的行,而这呢,是我们通过这个图形化界面来看这个大文件看到的哈,而这儿呢,我们通过这个叫黑凑的话呢,展示出来的,实际上是不是也就是关于咱们内存当中,呃,你到底都有什么类型的对象,这个对象的个数是多少,占用的这个呃,空间字节数是多少,你看这呢,是不是也是做了一个罗列啊。
06:08
哎,通过这个呢,相当于也能够展示出来,哎,到底是大概什么原因造成的啊,我们肯定是有这个大对象了是吧?哎,出现我们最终出现比如OM了,或者说呢,担心出现OM啊,或者呢,有这个内存泄露的问题啊,这个呢,我们通过这呢也可以有一个分析啊,这个呢,就是提到的叫黑啊,也不多说了。那它针对的,哎,注意它针对的是不是也是我们当前这一个时刻呀,哎,不能够进行连续的监控,要想连续监控呢,还得用像JV呢,进行一个连续监控啊,这是咱们下一章要讲解的问题,好,然后再回过来,还有其他的一些作用,我这块呢,就不进行演示了啊,这两个呢,在咱们的Linux里边呢,可以去执行,那在window下呢,咱们就呃显示不了了,它这是在Linux上才有效的是吧,本身这两个的话呢,呃,也相对来说,针对于g map来讲,使用的也是小众的啊,就介绍一下。这些pro state呢,就是针对我们这个永久的一个状态的一个描述啊,因为永久呢,主要涉及到我们加载的类嘛,所以呢,就是呃,系统的class的相关信息,这个finalize呢,线程里边关于要被调用finalize方法的这个对象呢,进行了一个显示啊,就是这样个作用,好最后呢,我们这有个小结,那这个小结呢,大家注意一下啊,这个小节呢,一定程度上呢,我们诶是针对于这块呢,那来进行一个说明,哎,我们在上一节讲这个手动的时候呢,提到过这个life的一个作用啊。
07:29
那这里边儿呢,我们想强调的点是什么呢?就是这个解map呢,他在访问咱们堆空间这个对象的时候。啊,为了保证呢,这个过程当中不被应用线程,或者说叫我们这个工作线程是吧,干扰解map呢,它必须要借助于安全点击制。啊,安全点击制。这个安全点击制,咱们在讲上篇JC的时候呢,特意讲过啊,咱们当时说了这个GC啊,垃圾回收的话呢,是不是一定也要在这个安全点这个点上去执行JC是吧?哎,不能去影响这个应用线程啊,呃,那这呢相当于我们这个g map呢,去显示我们对空间这个内存的一个情况的,这个时候啊,它也得在这个安全点上让所有的这个工作线程呢,呃,这个停留下来啊,不改变最终数据的一个状态啊,也就是说呢,我们这个g map呢,导出堆快照的时候呢,一定是在安全点位置的,这有可能会导致快照分析时候呢,存在一定的偏差,怎么来理解呢?比如说呢,我们要使用这个冒号live。
08:24
啊,Lab的话呢,意思就是我们呃只显示在安全点,比如这是一个安全点,这是一个时间轴是吧。在这个时间轴,它有一个A的安全点,有个B的安全点,我们在这个安全点去获取咱们的大文件的信息啊,是没问题的,那如果说呢,我们在这个A安全点和B安全点之间呢,有一个对象,这个对象的生命周期呢,就只存在于这样的两个安全点之间,那如果说我们去加上这个冒号live的话。对吧,我们加上这个冒号lab的话呢,如果你在这个安全点B上获取的那这个对象啊,比如说OB1啊。这个对象的话呢,我们就没办法去做记录了啊,没办法做探知了啊,这就是我们所谓的这个偏差的一个情况啊,那没有办法是吧,只能是这样子的啊好,这是我们说的这个一个问题,呃,另外的话呢,就是说如果某一个线程长时间无法跑到安全点上啊,那我们g map呢,就只能一直在等下去了。
09:18
啊,这个是大家稍微注意的啊,它呢跟咱们前面讲的这个j state呢不一样啊,J state的话呢,呃,垃圾回收器呢,会主动的将我们j state所需要的数据呢,给它保存到这个固定的位置上啊,就不用呢去找,呃在这个安全点上了,所以JC呢是实时的进行读取的,呃跟j map有一些区别。啊,有些区别,好,那这个呢,相当于也是,呃,比如我们像刚才提到这个杠hip是吧,哎,这个杠hip呢,显示堆的使用情况,我们也提到跟咱们上面说的这个区别了,人家是可以进行连续监测的,那同时的话呢,我们这个操作是不是一定得在这个安全点上去这个操作是吧?诶所以这呢也是一个区别啊行,那这块的话呢,大家就针对于咱们这个解map的讲解呢,就说到这儿,最重要的呢,大家需要掌握就是诶如何去导出对转储的啊,快照文件啊,大文件啊这个。
10:08
好解办法告一段落。
我来说两句