鄂州网站推广优化技巧列举网络营销的特点
web/
2025/9/27 11:31:13/
文章来源:
鄂州网站推广优化技巧,列举网络营销的特点,免费主机免费域名,做网站PAAS系统什么是自动垃圾回收#xff1f;自动垃圾回收是一种在堆内存中找出哪些对象在被使用#xff0c;还有哪些对象没被使用#xff0c;并且将后者删掉的机制。所谓使用中的对象(已引用对象)#xff0c;指的是程序中有指针指向的对象#xff1b;而未使用中的对象(未引用对象)自动垃圾回收是一种在堆内存中找出哪些对象在被使用还有哪些对象没被使用并且将后者删掉的机制。所谓使用中的对象(已引用对象)指的是程序中有指针指向的对象而未使用中的对象(未引用对象)则没有被任何指针给指向因此占用的内存也可以被回收掉。在用 C 之类的编程语言时程序员需要自己手动分配和释放内存。而 Java 不一样它有垃圾回收器释放内存由回收器负责。本文接下来将介绍垃圾回收机制的基本过程。第一步标记垃圾回收的第一步是标记。垃圾回收器此时会找出哪些内存在使用中还有哪些不是。上图中蓝色表示已引用对象橙色表示未引用对象。垃圾回收器要检查完所有的对象才能知道哪些有被引用哪些没。如果系统里所有的对象都要检查那这一步可能会相当耗时间。关注Java技术栈微信公众号回复JVM46可以获取一份超全 JVM 调优攻略。第二步清除这一步会删掉标记出的未引用对象。内存分配器会保留指向可用内存的引用以供分配新对象。压缩为了提升性能删除了未引用对象后还可以将剩下的已引用对象放在一起(压缩)这样就能更简单快捷地分配新对象了。为什么需要分代垃圾收集之前说过逐一标记和压缩 Java 虚拟机里的所有对象非常低效分配的对象越多垃圾回收需时就越久。不过根据统计大部分的对象其实用没多久就不用了。JVM 与 Linux 的内存关系详解这篇推荐阅读。来看个例子吧。(下图中竖轴代表已分配的字节而横轴代表程序运行时间)上图可见存活(没被释放)的对象随运行时间越来越少。而图中左侧的那些峰值也表明了大部分对象其实都挺短命的。JVM 分代根据之前的规律就可以用来提升 JVM 的效率了。方法是把堆分成几个部分(就是所谓的分代)分别是新生代、老年代以及永生代。JVM运行时区域详解这篇推荐大家看下。新对象会被分配在新生代内存。一旦新生代内存满了就会开始对死掉的对象进行所谓的小型垃圾回收过程。一片新生代内存里死掉的越多回收过程就越快至于那些还活着的对象此时就会老化并最终老到进入老年代内存。Stop the World 事件 —— 小型垃圾回收属于一种叫 Stop the World 的事件。在这种事件发生时所有的程序线程都要暂停直到事件完成(比如这里就是完成了所有回收工作)为止。老年代用来保存长时间存活的对象。通常设置一个阈值当达到该年龄时年轻代对象会被移动到老年代。最终老年代也会被回收。这个事件成为 Major GC。Major GC 也会触发STW(Stop the World)。通常Major GC会慢很多因为它涉及到所有存活对象。所以对于响应性的应用程序应该尽量避免Major GC。还要注意Major GC的STW的时长受年老代垃圾回收器类型的影响。永久代包含JVM用于描述应用程序中类和方法的元数据。永久代是由JVM在运行时根据应用程序使用的类来填充的。此外Java SE类库和方法也存储在这里。如果JVM发现某些类不再需要并且其他类可能需要空间则这些类可能会被回收。世代垃圾收集过程现在你已经理解了为什么堆被分成不同的代现在是时候看看这些空间是如何相互作用的。后面的图片将介绍JVM中的对象分配和老化过程。关注Java技术栈微信公众号回复JVM46可以获取一份超全 JVM 调优攻略。首先将任何新对象分配给 eden 空间。两个 survivor 空间都是空的。当 eden 空间填满时会触发轻微的垃圾收集。引用的对象被移动到第一个 survivor 空间。清除 eden 空间时将删除未引用的对象。在下一次Minor GC中Eden区也会做同样的操作。删除未被引用的对象并将被引用的对象移动到Survivor区。然而这里他们被移动到了第二个Survivor区(S1)。此外第一个Survivor区(S0)中在上一次Minor GC幸存的对象会增加年龄并被移动到S1中。待所有幸存对象都被移动到S1后S0和Eden区都会被清空。注意Survivor区中有了不同年龄的对象。在下一次Minor GC中会重复同样的操作。不过这一次Survivor区会交换。被引用的对象移动到S0,。幸存的对象增加年龄。Eden区和S1被清空。此幻灯片演示了 promotion。在较小的GC之后当老化的物体达到一定的年龄阈值(在该示例中为8)时它们从年轻一代晋升到老一代。随着较小的GC持续发生物体将继续被推广到老一代空间。所以这几乎涵盖了年轻一代的整个过程。最终将主要对老一代进行GC清理并最终压缩该空间。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/81141.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!