虽然说解释执行模式是逐字逐句翻译给目标平台运行的,但这样的过程未免太过缓慢,如果能把字节码说的话做成纸条,运行时只要把对应的纸条交给目标平台就可以了,这样,执行速度就会明显提升.JVM的Hotspot虚拟机的模板解释器就是用这种方法来解释执行的.在开始分析之前,先了解一下JVM的执行方式. (1).边解释边运行,即每次解释一条字节码并运行其解释的本地代码,这种执行引擎速度相对很慢  (2).JIT(即时编译)具有更快的运行速度但是需要更多的内存,方法被第一次调用时,字节码编译生成的本地代码将会被…
[inside hotspot] 汇编模板解释器(Template Interpreter)和字节码执行 1.模板解释器 hotspot解释器模块(hotspot\src\share\vm\interpreter)有两个实现:基于C++的解释器和基于汇编的模板解释器.hotspot默认使用比较快的模板解释器. 其中 C++解释器 = bytecodeInterpreter* + cppInterpreter* 模板解释器 = templateTable* + templateInterprete…
本文由HeapDump性能社区首席讲师鸠摩(马智)授权整理发布 第17章-x86-64寄存器 不同的CPU都能够解释的机器语言的体系称为指令集架构(ISA,Instruction Set Architecture),也可以称为指令集(instruction set).Intel将x86系列CPU之中的32位CPU指令集架构称为IA-32,IA是"Intel Architecture"的简称,也可以称为i386.x86-32.AMD等于Intell提出了x86系列的64位扩展,所以由AM…
提示:本文的所有图片如果不清晰,请在浏览器的新建标签中打开或保存到本地打开 一.软件平台与硬件平台 软件平台: 操作系统:Windows 8.1 64-bit 开发套件:Vivado2015.4.2 硬件平台: 评估板:ZYNQ-7 ZC706 Evaluation Board 二.打开例子工程 1.新建工程,并在IP Catalog中找到Serial RapidIO Gen2 2.双击Serial RapidIO Gen2进入核的配置界面,所用参数全部保持默认,然后直接点击OK 3.在弹出的的…
https://www.cnblogs.com/liujinggang/p/10091216.html 一.软件平台与硬件平台 软件平台: 操作系统:Windows 8.1 64-bit 开发套件:Vivado2015.4.2 硬件平台: 评估板:ZYNQ-7 ZC706 Evaluation Board 提示:本文的所有图片如果不清晰,请在浏览器的新建标签中打开或保存到本地打开 二.打开例子工程 1.新建工程,并在IP Catalog中找到Serial RapidIO Gen2 2.双击Ser…
Activity启动过程源码分析 本文来Activity的启动流程,一般我们都是通过startActivity或startActivityForResult来启动目标activity,那么我们就由此出发探究系统是如何实现目标activity的启动的. startActivity(new Intent(context, MainActivity.class)); startActivityForResult(new Intent(context, SecondActivity.class),100…
springboot 事务创建流程源码分析 目录 springboot 事务创建流程源码分析 1. 自动加载配置 2. InfrastructureAdvisorAutoProxyCreator类 3.BeanFactoryTransactionAttributeSourceAdvisor类 4.判断bean对象是否需要进行事务增强处理 5.生成对应代理类 6. 最终生成的代理类class反编译 springboot中事务是相对重要的一个部分.也是aop的一个使用场景.我们今天就来一起从源码的角…
以下内容为原创,欢迎转载,转载请注明 来自天天博客:http://www.cnblogs.com/tiantianbyconan/p/5017056.html 从Launcher开始启动App流程源码分析 com.android.launcher.Launcher就是我们的Launcher页面了,可以看到Launcher其实也是一个Activity: public final class Launcher extends Activity implements View.OnClickListe…
以下内容为原创,欢迎转载,转载请注明 来自天天博客:http://www.cnblogs.com/tiantianbyconan/p/5013863.html Android系统启动流程源码分析 首先我们知道,Android是基于Linux的,当Linux内核加载完成时就会自动启动一个init的进程. 又因为我们每当我们启动一个App时,就会生成一个新的dalvik实例,并处于一个新的进程(当然一个App也可能是多进程的). 当我们打开第一个App的时候,就会通过init进程fork出一个zyg…
在前面一篇文章中,我们分析了Android系统在启动时安装应用程序的过程,这些应用程序安装好之后,还须要有一个Home应用程序来负责把它们在桌面上展示出来,在Android系统中,这个默认的Home应用程序就是Launcher了,本文将详细分析Launcher应用程序的启动过程. Android系统的Home应用程序Launcher是由ActivityManagerService启动的,而ActivityManagerService和PackageManagerService一样,都是在开机时由…