随笔分类 - Jvm
Java虚拟机
摘要:官方网站:https://docs.oracle.com/javase/7/docs/technotes/tools/share/jps.html The jps command supports a number of options that modify the output of the c
阅读全文
摘要:GC算法的基础概念 Card Table 由于做YGC时,需要扫描整个OLD区,效率非常低,所以JVM设计了CardTable 如果一个OLD区CardTable中有对象指向Y区,就将它设为Dirty,下次扫描时,只需要扫描Dirty Card 在结构上,Card Table用BitMap来实现 C
阅读全文
摘要:设计架构的重要思想 分治 分层 官方地址:https://www.oracle.com/technical-resources/articles/java/g1gc.html 吞吐量G1比PS降低10%~15% 追求耗时少,200ms内有响应,用G1 追求throughput,用Parallel G
阅读全文
摘要:Jvm 常用命令行参数 JVM的命令行参数参考:https://docs.oracle.com/javase/8/docs/technotes/tools/unix/java.html HotSpot参数分类 标准: - 开头,所有的HotSpot都支持 非标准:-X 开头,特定版本HotSpot支
阅读全文
摘要:Garbage 丢失指针的对象 java 与 c++ 垃圾处理区别 Java: new 自动内存回收,编程上简单,系统不容易出错,手动释放内存,容易出两种类型的问题: 忘记回收 多次回收 没有任何引用指向的一个对象或者多个对象(循环引用) 如何找垃圾 引用计数(ReferenceCount)Pyth
阅读全文
摘要:A class life cycle Run-time data areas PC 程序计数器,存放指令位置 虚拟机的运行,类似于这样的循环 while(not end) { 取PC中的位置,找到对应位置的指令; 执行该指令; PC ++; } JVM Stack Frame - 每个方法对
阅读全文
摘要:使用JavaAgent测试Object的大小 观察虚拟机配置 java -XX:+PrintCommandLineFlags -version 对象创建过程 class loading class linking(verification, preparation, resolution) clas
阅读全文
摘要:存储器层次结构 Cache line的概念,缓存行对齐,伪共享 多线程一致性的硬件层支持 MESI Cache一致性协议(重点) 在MESI协议中,每个Cache line有4个状态,可用2个bit表示,它们分别是: M(Modified):这行数据有效,数据被修改了,和内存中的数据不一致,数据只存
阅读全文
摘要:preparation这一步比较重要 双亲委派机制 类加载器的继承关系 类加载过程 类加载器的范围 自定义类加载器 loadClass Java编译+解释混合模式 懒加载 Linking Verification 验证文件是否符合JVM规定 Preparation 静态成员变量赋默认值 Resolu
阅读全文
摘要:Java从编译到执行 JVM是跨语言的平台 Jvm与Java无关 Jvm是一种规范 常见Jvm实现 Class File Format Javap 该指令显示class的信息 JBE可以直接修改class IDEA插件,JClassLib 点击下载即可 编译以后,将光标放在想要查看的class的ja
阅读全文
摘要:转自 http://blog.csdn.net/Luomingku_1109 JVM是一种规范 Java源文件 --> 编译器 --> 字节码文件 字节码文件 --> JVM(解释器) --> 机器码 Hotspot JVM 后台运行系统线程主要有下面几个 VM Thread,等待JVM到达安全点操
阅读全文