测试串行回收与堆初始值有关系02

我把堆的最大的内存改大一点,改到512M,你们可以看看效果,堆的最大内存改成512,你们说一下,我把堆的最大值改成512,但是初始值还是32M,那启动的时候垃圾回收次数至少几次,猜也猜得出来,刚才我们有几次,可以思考一下,6次是不是,那这时候至少是在5,6次左右的样子,我说过的,垃圾回收次数和最大的堆内存没有关系,是和你的初始值有关系的,在我申请内存的情况下,慢慢地去申请内存,所以刚开始和最大内存没有关系的,最大内存主要是做申请内存的,核心是根据初始内存,然后我来运行一遍-XX:+PrintGCDetails -Xmx512M -Xms32M
-XX:+HeapDumpOnOutOfMemoryError
-XX:+UseSerialGC
-XX:PermSize=32M

这个时候我们就可以统计一个道理出来,统计什么道理,最大堆内存改为512M了,但是他的垃圾回收次数,为什么还是没有变呢,这是为什么原因,记住一点,垃圾回收次数和设置堆最大内存无关的,只和堆初始内存大小有关系,这个我们可以知道一下,GC回收次数我们可以统计出来,是6次,吞吐量我们还不知道,我们看一下吞吐量是多少,你们大致可以猜一下,我现在设置512M,范围应该在多少,估算一下,可以去猜,这个没关系的,在多少范围之内,猜错了没关系的,5000左右,你们看效果差不了多少,看效果你们就知道,我们讲一下,我们吞吐量还不知道,这个时候我们怎么办呢,把它清空掉,运行,这个时候有没有做垃圾回收,是不是也有一次,这个时候我再访问一遍,是不是也做了一次GC回收,那么在这边你们看一下效果

还是5141,我们记一下,5141,你们再看一下我们这边的,5114,差别大不大,你们自己说大不大,根本不大,这个时候我们知道一个结论出来,这个堆的初始值非常非常的核心,为什么呢,垃圾回收次数和堆的最大内存大小无关,只和堆的初始大小有关系的,这一点非常非常重要,为什么我之前说非常多的一句话就是,一定要把堆的初始值和最大值要设成一致,初始内存会影响到吞吐量的,初始内存会影响吞吐量
扩大堆的内存
-XX:+PrintGCDetails -Xmx512M -Xms32M
-XX:+HeapDumpOnOutOfMemoryError
-XX:+UseSerialGC
-XX:PermSize=32MGC 回收次数6次 吞吐量5141
结论:垃圾回收次数和设置最大堆内存大小无关,只和初始内存有关系。
初始内存会影响吞吐量。

 


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部