Java虚拟机是整个java平台的基石,是java技术实现硬件无关和操作系统无关的关键环节,是java语言生成极小体积的编译代码的运行平台,是保护用户机器免受恶意代码侵袭的保护屏障。JVM是虚拟机,也是一种规范,他遵循着冯·诺依曼体系结构的设计原理。冯·诺依曼体系结构中,指出计算机处理的数据和指令都是二进制数,采用存储程序方式不加区分的存储在同一个存储器里,并且顺序执行,指令由操作码和地址码组成,...
分类:
其他好文 时间:
2016-07-11 17:19:28
阅读次数:
297
转载地址:深入理解PHP Opcode缓存原理 什么是opcode缓存? 当解释器完成对脚本代码的分析后,便将它们生成可以直接运行的中间代码,也称为操作码(Operate Code,opcode)。Opcode cache的目地是避免重复编译,减少CPU和内存开销。如果动态内容的性能瓶颈不在于CPU ...
分类:
Web程序 时间:
2016-07-01 13:19:06
阅读次数:
204
一、文章来由开始实习啦,实习转战Java开发工程师。。。二、JVM内存模型总图Java中通过多线程机制使得多个任务同时执行处理,所有的线程共享JVM内存区域main memory,而每个线程又单独的有自己的工作内存,当线程与内存区域进行交互时,数据从主存拷贝到工作内存,进而交由线程处理(操作码+操作数)。在之前,我们也已经提到,JVM的逻辑内存模型如下:三、JVM内存模型详解1、程序计数器程序计数器...
分类:
编程语言 时间:
2016-06-17 17:21:03
阅读次数:
310
本文是基于周志明的《深入理解Java虚拟机》
Java 虚拟机的指令由一个字节长度的、代表着某种特定操作含义的操作码(Opcode)以及跟随其后的零至多个代表此操作所需参数的操作数(Operands)所构成。虚拟机中许多指令并不包含操作数,只有一个操作码。
如果忽略异常处理,那 Java 虚拟机的解释器使用下面这个伪代码的循环即可有效地工作:
do {
自动计算...
分类:
其他好文 时间:
2016-05-22 12:24:29
阅读次数:
335
在ARM处理器汇编语言程序设计里,有一些特殊的指令助记符。这些助记符与指令系统的助记符不同,没有相对应的操作码,通常称这些特殊的指令助记符为伪指令,它们所完成的操作称为伪操作。 伪指令在源程序中的作用是为完成汇编程序做各种准备工作的,这些伪指令仅在汇编过程中起作用,一旦汇编结束,伪指令的使命就完成了... ...
分类:
其他好文 时间:
2016-05-20 09:54:38
阅读次数:
184
JVM内存模型优点 JVM性能的人为问题 Java内存种类 两种内存使用 对象如何保存在内存中? 属性值作为数据,保存在数据区heap 中,包括属性的类型Classtype和对象本身的类型 方法本身是指令的操作码,保存在stack中。 方法内部变量作为指令的操作数也是在Stack中, 包括基本类型和 ...
分类:
其他好文 时间:
2016-05-19 13:08:42
阅读次数:
126
什么是opcode缓存? 当解释器完成对脚本代码的分析后,便将它们生成可以直接运行的中间代码,也称为操作码(Operate Code,opcode)。Opcode cache的目地是避免重复编译,减少CPU和内存开销。如果动态内容的性能瓶颈不在于CPU和内存,而在于I/O操作,比如数据库查询带来的磁 ...
分类:
Web程序 时间:
2016-05-07 13:21:12
阅读次数:
269
一、重叠执行和先行控制一条指令的执行过程:
(1)取指令:按照指令计数器PC的内容访问主存,取出一条指令送到指令寄存器。
(2)分析指令:对指令的操作码进行译码,按照给定的寻址方式和地址字段形成操作数的地址,并用这个地址读取操作数。
操作数可能在主存中,也可能在通用寄存器中。
(3)执行指令:按照操作码的要求,完成指令规定的功能。
1.1 重叠执行当有多条指令要在处理机中执行时,可以有以下三种执行方...
分类:
其他好文 时间:
2016-05-06 00:52:03
阅读次数:
248
一、基本概念
在计算机中,程序设计语言可划分为低级语言和高级语言两大类,与高级语言相比,用低级语言开发的程序,其运行效率高,但开发效率低。与程序设计相关的基本概念如下。
(1)低级语言:又称面向机器语言,它是特定的计算机系统所固有的语言。
(2)汇编语言:是机器语言的一种提升,它使用了一些助记符来表示机器指令中的操作码和操作数。但它仍然是一种和计算机机器语言十分接近的语言,使用起来仍然不太方...
分类:
编程语言 时间:
2016-04-30 22:26:44
阅读次数:
320
Java虚拟机包括血多进行基本类型转换工作的操作码,这些执行转换工作的操作码后面没有操作数,转换的值从栈顶端获得。Java虚拟机从栈顶端弹出一个值,对它进行转换,然后再把转换结果压入栈。进行int、long、float和double类型之间转换的操作码。 f ...
分类:
编程语言 时间:
2016-04-30 12:42:04
阅读次数:
209