JVM技术周报第1期
JVM技术周报 · 第1期
JVM技术每周分享整理了JVM技术交流群每周讨论的内容,由群内成员整理归纳而成。如果你有兴趣入群讨论,请关注「Java技术精选」公众号,通过右下角菜单「入群交流」加我好友,获取入群详情。
SafePoint
safePoint是代码的特殊位置.发生GC时,jvm要判断引用关系,引用关系存在OopMap中,不可能每跑一行代码就生成一个OopMap,这会消耗大量的CPU执行时间和内存,所以jvm会在一些特殊的位置生成OopMap,这些位置就是SafePoint.GC时,jvm发出线程中断请求,线程只有跑到SafePoint才会中断,所以SafePoint不能太少.
线程中断主要有两个方式:抢先式中断 线程收到中断请求时,判断在不在safepoint,不在恢复run到safepoint(很少使用) 主动式中断 线程run的时候轮询中断标志,中断标志为真则处于safepoint.
SafeRegion
当线程正在run的时候,可以响应jvm的中断请求,跑到SafePoint中断.但是线程处于wait,blocked,sleep状态时,是无法跑到SafePoint中断的.同时这些线程不处于run的状态,引用关系不会发生变化.于是jvm规定了SafeRegion,无论何时发起GC,处于SafeRegion的线程都是安全的可以直接进行GC的.线程离开SafeRegion会检查系统是否已经完成了gc,完成可以离开去run,未完成继续等待可以离开的信号.
CMS内存碎片
CMS (Concurrent Mark Sweep)是一种以获取最短回收停顿时间为目标的Tenured generation收集器.CMS采取的是标记清清除算法.该算法是一定会产生内存碎片的,这是无法避免的.致过多的内存碎片会导致给大对象分配内存时,没有足够大的连续内存而出发full GC.
于是CMS提供了两个参数去解决这个问题:
-XX:UseCMSCompactAtFullCollection默认开启,fullGC时将老年代缩压缩.
-XX:CMSFullGCsBeforeCompaction 则是代表多少次FGC后对老年代做压缩操作,默认值为0,代表每次都压缩, 把对象移动到内存的最左边,可能会影响性能,但是可以消除碎片. 即牺牲一定性能在每次GC之后,将存活的对象整理到一块,消除内存碎片.
parNew+CMS组合 eden的YGC辨别对象的状态
问题中有个缺陷,当触发MinorGC时不仅仅是eden区,还会扫描from Survivor 区的内存.
ParNew采取的算法是复制清除算法,但是判断对象是否存活仍是可达性算法,采取对对象进行标记判断状态.
常量池
常量池主要分为两个:
静态常量池: *.class的常量池,保存了一些类的描述信息(符号引用-->1.类和方法的全限定名 2.字段的名称和描述符 3.方法的名称和描述符),以及一些字面量(1.文本字符串 2.八种基本类型的值 3.被声明为final的常量等)动态常量池: jvm在加载某个类的时候,必须经过装载、连接、初始化,而连接又包括验证、准备、解析三个阶段。而当类加载到内存中后,jvm就会将class常量池中的内容存放到运行时常量池中,由此可知,运行时常量池也是每个类都有一个.
全局字符串常量池:本质是一个HashSet,这是一个纯运行时的结构,而且是惰性维护的。注意它只存储String对象的引用,而不存储String对象的内容,根据这个引用可以得到具体的String对象。这个常量池在每个HotSpot VM的实例只有一份,被所有的类共享, JDK6 之前是存放在方法区,JDK7被移到了堆区中.(这里有很多有意思的点课自行百度)
JVM技术周报第1期的更多相关文章
- JVM技术周报第2期
JVM技术周报第2期 JVM技术周报分享JVM技术交流群的讨论内容,由群内成员整理归纳而成.如果你有兴趣入群讨论,请关注「Java技术精选」公众号,通过右下角菜单「入群交流」加我好友,获取入群详情. ...
- iOS移动开发周报-第24期
iOS移动开发周报-第24期 [摘要]:本期iOS移动开发周报带来如下内容:苹果更新了iTunes Connect的设计.UIKit Dynamics 教程:抛掷 Views.iOS APP 架构漫谈 ...
- iOS移动开发周报-第19期
iOS移动开发周报-第19期 前言 欢迎国内的iOS同行或技术作者向我提交周报线索,线索可以是新闻.教程.开发工具或开源项目,将相关文章的简介和链接在微博上发布并 @唐巧_boy 即可. [摘要]:本 ...
- iOS移动开发周报-第17期
lhq iOS移动开发周报-第17期 前言 欢迎国内的iOS同行或技术作者向我提交周报线索,线索可以是新闻.教程.开发工具或开源项目,将相关文章的简介和链接在微博上发布并 @唐巧_boy 即可. [摘 ...
- iOS移动开发周报-第25期
iOS移动开发周报-第25期 [摘要]:本期iOS移动开发周报带来如下内容:苹果发布 iPhone6 和 Apple Watch.Swift 1.0 GM发布.Xcode 6支持PDF Vector作 ...
- iOS移动开发周报-第23期
iOS移动开发周报-第23期 [摘要]:本期iOS移动开发周报带来如下内容:苹果发出9月9日发布会邀请函,AFNetworking2.0源码解析,objc与鸭子对象,Protecting iOS Ap ...
- iOS移动开发周报-第22期
iOS移动开发周报-第22期 [摘要]:本期iOS移动开发周报带来如下内容:苹果股价创新高,iOS8自动调整UITableView布局,Swift学习心得等. 新闻 <苹果股价创新高 市值全球第 ...
- iOS移动开发周报-第21期
iOS移动开发周报-第21期 [摘要]:本期iOS移动开发周报带来如下内容:苹果iCloud中国数据转存中国电信,Swift Operators,100 个 Swift 必备 tips,FLEXLoa ...
- 极客技术专题【008期】:CSS3核心技术:选择器
日期:2013-8-19 来源:GBin1.com 技术专题介绍 技术专题:CSS3核心技术:选择器 专题演讲稿:CSS3选择器 分享人:知名前端技术博客 - w3cplus.com 博主 - 大漠 ...
随机推荐
- Oracle EBS OPM close batch
--close_batch --created by jenrry DECLARE x_message_count NUMBER; x_message_list VARCHAR2 (4000); x_ ...
- 数据仓库四个特点(面向主题的(Subject Oriented)、集成的(Integrate)、相对稳定的(Non-Volatile)、反映历史变化(Time Variant))
1.面向主题. 数据仓库中的数据是按照一定的主题域进行组织. 主题是一个抽象的概念,是指用户使用数据仓库进行决策时所关心的重点方面,一个主题通常与多个操作型信息系统相关.而操作型数据库的数据组织面向事 ...
- [转]Java学习---7大经典的排序算法总结实现
[原文]https://www.toutiao.com/i6591634652274885128/ 常见排序算法总结与实现 本文使用Java实现这几种排序. 以下是对排序算法总体的介绍. 冒泡排序 比 ...
- 安全之路 —— 利用SVCHost.exe系统服务实现后门自启动
简介 在Windows系统中有一个系统服务控制器,叫做SVCHost.exe,它可以用来管理系统的多组服务.它与普通的服务控制不同的是它采用dll导出的ServiceMain主函数实现服务运行,详细原 ...
- Linux命令网络命令之netstat
Linux命令网络命令之netstat 这一年感觉到技术上成长到了一个瓶颈.可能是感觉自己学的东西足够应付目前的工作了,因此精神上就产生了懈怠,不思进取.到了一个技术氛围不错的公司,有许多专业能力很不 ...
- TiDB数据库 使用syncer工具同步实时数据
mysql> select campaign_id ,count(id) from creative_output group by campaign_id; rows min 44.23 se ...
- IIS 安全设置
这近网站中毒,以下把IIS安全设置记录一下,以便查阅. 1.对于不需要执行的目录,将处理程序映射中的编辑功能权限中的脚本去掉,这样即使上传了木马文件在此目录,也是无法执行的. 删除IIS默认的匿名用户 ...
- C#中抽象类(abstract)和接口(interface)的实现
抽象类 抽象方法是没有代码实现的方法,使用abstract关键字修饰: 抽象类是包含0到多个抽象方法的类,其不能实例化.含有抽象方法的类必须是抽象类,抽象类中也可以包含非抽象方法: 重写抽象类的方法用 ...
- Tengine 2.1.2 (nginx/1.6.2)安装配置,淘宝 Web 服务器
简介 Tengine是由淘宝网发起的Web服务器项目.它在Nginx的基础上,针对大访问量网站的需求,添加了很多高级功能和特性.Tengine的性能和稳定性已经在大型的网站如淘宝网,天猫商城等得到了很 ...
- PAT B1025 反转链表 (25 分)
给定一个常数 K 以及一个单链表 L,请编写程序将 L 中每 K 个结点反转.例如:给定 L 为 1→2→3→4→5→6,K 为 3,则输出应该为 3→2→1→6→5→4:如果 K 为 4,则输出应该 ...