首页 > 编程知识 正文

设置jvm内存参数,jvm内存模型及gc

时间:2023-05-04 12:17:05 阅读:126886 作者:1786

java JVM存储器结构的PC寄存器本篇自己学习记录。 如果有错误的话,请大家指出来。

JVM内存模型图

另外一方面,在PC寄存器介绍(PC寄存器) JVM中的PC程序计数寄存器(Program Counter Register )中,Register的命名来源于cpu内的寄存器,寄存器是与指令有关的字段信息这里,不是广义上的物理寄存器

作用: pc寄存器是用于存储接下来应该执行指令的地址、即接下来应该执行的代码的寄存器,由执行引擎读取下一个指令

特点:运行空间小,小到可以忽略,而且运行速度最快

每个线程都有自己的程序计数器,线程之间没有影响

运行时数据区是唯一不会出现内存外错(oom )的区域,没有垃圾回收(gc )。

这是流控制的指针,分支流控制、异常处理、线程恢复等基本功能都依赖于pc寄存器进行

对于正在运行的本地方法(native方法),此计数器值必须未定义。 (未定义)

第二,以下面的简单代码为例进行说明

框1是执行命令数字号码,框2是执行的局面命令

框3是指令编号与实际代码中行编号的对应关系

三、面试题1 .使用PC寄存器保存字节码的指令地址有什么用?

因为线程按每个线程的顺序运行流,所以CPU必须不断切换每个线程。 此时,切换回来后,需要知道接下来从哪里继续执行。 JVM的字节码解释器需要通过改变PC寄存器的值来明确下一步应该执行什么样的字节码指令,记录下一个字节码执行的指令,实现分支循环跳转、异常处理、线程恢复等功能。

2 .电脑寄存器为什么设置为私有?

CPU为每个线程分配时间片,多线程是只执行某个特定时间段内的线程的方法。 CPU不断进行任务切换。 线程需要中断并重新开始。 分配CPU、多线程和时间片,只运行一个线程。 CPU任务的切换、线程的中断恢复、各线程、PC寄存器的记录、当前字节码的指令地址、各线程之间可以进行独立的计算,可以防止相互干扰。 为了准确记录每个线程当前正在执行的字节码指令,最好的方法是将pc寄存器分配给每个线程,以防止相互干扰。 要准确记录每个线程当前正在执行的字节码指令,最好的方法是为每个线程分配一个pc寄存器

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。