JVM
文章平均质量分 74
Forest24
keep learning...
展开
-
JVM调优
常见垃圾回收器组合参数设定:(1.8) -XX:+UseSerialGC = Serial New (DefNew) + Serial Old 小型程序。默认情况下不会是这种选项,HotSpot会根据计算及配置和JDK版本自动选择收集器 -XX:+UseParNewGC = ParNew + SerialOld 这个组合已经很少用(在某些版本中已经废弃) https:/...原创 2020-03-09 22:52:18 · 282 阅读 · 0 评论 -
Java运行时数据区和常用指令
指令集分类基于寄存器的指令集 基于栈的指令集 Hotspot中的Local Variable Table = JVM中的寄存器Runtime Data AreaPC 程序计数器存放指令位置虚拟机的运行,类似于这样的循环:while( not end ) { 取PC中的位置,找到对应位置的指令; 执行该指令; PC ++;}JVM St...原创 2020-03-09 21:09:23 · 256 阅读 · 0 评论 -
JMM(java内存模型)
硬件层数据一致性协议很多intel 用MESIhttps://www.cnblogs.com/z00377750/p/9180644.html现代CPU的数据一致性实现 = 缓存锁(MESI ...) + 总线锁读取缓存以cache line为基本单位,目前64bytes/字节位于同一缓存行的两个不同数据,被两个不同CPU锁定,产生互相影响的伪共享问题...原创 2020-03-08 22:52:00 · 283 阅读 · 0 评论 -
CPU指令乱序执行问题
1.乱序问题CPU为了提高指令执行效率,会在一条指令执行过程中(比如去内存读数据(慢100倍)),去同时执行另一条指令,前提是,两条指令没有依赖关系https://www.cnblogs.com/liushaodong/p/4777308.html写操作也可以进行合并https://www.cnblogs.com/liushaodong/p/4777308.html2.如何保证...原创 2019-11-23 16:25:44 · 1473 阅读 · 0 评论 -
关于java对象的一些问题
1.对象的创建过程1.class loading2.class linking(Verification(验证),Preparation(准备),Resolution(解析))3.clsaaInitializing4.申请对象内存5.成员变量赋默认值6.调用构造方法(init) 1.成员变量顺序赋初始值 2.执行构造方法语句2.对象在内存中的存储布...原创 2019-11-17 16:00:46 · 221 阅读 · 0 评论 -
类加载过程
1.Loading2.Linking >1.Verification(验证):验证文件是否符合JVM规定 >2.Preparation(准备):给静态成员变量赋默认值 >3.Resolution(解析):将类,方法,属性等符号引用解析为直接引用3.Initializing1.调用类初始化代码,给静态成员变量赋初始值类加载器...原创 2019-11-05 22:40:00 · 199 阅读 · 0 评论 -
GC基本知识
1.什么是垃圾没有任何引用指向的一个对象,或多个对象(循环引用)2.如何定位垃圾引用计数法(无法解决循环引用)根可达算法(通过根对象找不到的对象都是垃圾)根对象:线程栈变量,引入的Class的静态变量,常量池和JNI指针引用到的变量3.常见的垃圾回收算法Mark-Sweep(标记清除):位置不连续,产生碎片Copying(拷贝):没有碎片,浪费空间Mark-Co...原创 2019-10-20 16:56:13 · 574 阅读 · 1 评论