首页 文章 精选 留言 我的
优秀的个人博客,低调大师

微信关注我们

原文链接:https://yq.aliyun.com/articles/616729

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

Java的垃圾回收机制-垃圾收集算法(一)

当需要排查各种内存溢出,内存泄漏等问题时,当垃圾收集成为系统达到更高并发的瓶颈时,我们有必要深入GC的原理。 image.png 常见垃圾回收算法 在查看垃圾回收具体过程的时候,运行程序加上:-XX:+PrintGCDetails打印详细的垃圾回收过程。 程序计数器,虚拟机栈,本地方法区是三个区域随着线程创建而创建,线程的销毁而销毁,不在垃圾回收的范围内。垃圾回收的区域主要集中在堆与方法区中。 引用计数法 给对象中添加一个引用计数器,每当有一个地方引用它时,计数器就加1;当引用失效的时候,计数器就减1;任何时刻计数器为0的对象就是不可能再被使用的。 客观说:引用计数器实现简单,判定效率也足够高,在部分情况下是一个不错的算法。但JVM并没有使用引用计数法来管理内存。 可达性分析算法 主流的商业语言(Java,C#)都是通过可达性分析来判定对象是否存活的。 算法思路:通过一系列称为GC Roots的对象作为起始点,从这些节点开始向下搜索,搜索所走过的路径称为引用链(Reference Chain),当一个对象到GC Roots没有任何的引用链,(也就是从GC Roots到这个对象不可达),...

Java垃圾回收机制-垃圾收集器(二)

上篇总结了常见的垃圾收集算法,这里回顾下常见的垃圾收集器。 image.png 上图展示了7种不同分代的垃圾收集器,如果两个收集器之间存在连线,说明他们之间可以搭配使用。虚拟机所处的区域,代表它是新生代收集器还是老年代收集器。 下面依次介绍各自收集器,没有最好的收集器,针对不同的场景选择适合自己的收集器。 Serial收集器 它是最基本、发展历史最为悠久的收集器,单线程的收集器,在执行收集时,必须暂停其它的工作线程,直到它收集结束。早些年Java卡顿的现象就是由它导致的。 image.png 两大特点: 它仅仅使用单线程进行垃圾回收 它独占式的垃圾回收 虽然串行收集器进行垃圾回收时给用户带来的体验极差,但是它简单高效,对于内存不是很大的场景一般停顿时间可以控制在很低几乎感知不到。只要不频繁发生,小小的停顿还是可以接受的。 Serial收集器对于运行在Client模式下的虚拟机来说是一个好的选择。 参数: -XX:+UseSerialGC 指定使用新生代串行收集器和老年代串行收集器。 ParNew收集器 它是Serial收集器的多线程版本,除了使用多条线程进行垃圾收集之外,其余行为包括S...

相关文章

发表评论

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册