JVM
文章平均质量分 55
欧阳惜竹
此生无悔
展开
-
JVM 堆 VS 本地内存
Java 的类实例一般在 JVM 堆上分配,而 Java 是通过 JNI 调用 C 代码来实现 Socket 通信的,那么 C 代码在运行过程中需要的内存又是从哪里分配的呢?C 代码能否直接操作 Java 堆? 为了回答这些问题,我先来说说 JVM 和用户进程的关系。如果你想运行一个 Java 类文件,可以用下面的 Java 命令来执行 java my.class 这个命令行中的java其实是一个可执行程序,这个程序会创建 JVM 来加载和运行你的 Java 类。 操作系统会创建一个进程来执行这个java原创 2021-03-16 20:01:21 · 374 阅读 · 1 评论 -
HotSpot 中的 intrinsic
@HotSpotIntrinsicCandidate JDK的源码中,被@HotSpotIntrinsicCandidate标注的方法,在HotSpot中都有一套高效的实现,该高效实现基于CPU指令,运行时,HotSpot维护的高效实现会替代JDK的源码实现,从而获得更高的效率。 intrinsic的实现方式 独立的桩程序:对目标方法的调用将被这些独立的桩程序替换,既可以被解释器利用,也可以被即时编译器利用,如Math类中的一些方法。 特殊的编译器IR节点:对原方法调用的IR节点将被替换为特殊的IR节点,特原创 2021-01-12 10:52:50 · 219 阅读 · 0 评论 -
GC 中的 promotion failed
文章目录1 什么是promotion failed2 什么情况下会发生promotion failed3 发生promotion failed会有什么后果4 如果尽量避免发生promotion failed 1 什么是promotion failed promotion是“晋升”的意思,promotion failed当然是“晋升失败”了,在JVM GC的世界里,也有类似人类社会中的分等分级的概念,我所说的是对象是被区分对待的,有用(存在引用)的对象会在垃圾回收的过程中被晋升到较高等级的内存区域,然而有时候原创 2020-10-26 17:19:32 · 698 阅读 · 0 评论