寒假阅读笔记十
Posted 大灰狼爱吃兔子
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了寒假阅读笔记十相关的知识,希望对你有一定的参考价值。
架构之美——系统架构(四)
今天,我阅读的是《架构之美》的第十章,题目为元循环虚拟机的力量:Jikes RVM,其实说实话,看到这个题目我的头就有点大了,以前从来没有听说过这个名词,究竟什么是Jikes RVM?原来,Jikes RVM的中文名字是Jikes研究虚拟机,它是为执行这样一种Java程序而设计的,这种Java程序典型地用于研究基本的虚拟机设计问题。它为科研院所提供一个灵活的测试平台,可以在这个测试平台上建立新的虚拟机技术的原型和试验各种各样的设计方案。Jikes RVM运行在AIX/PowerPC、Linux/PowerPC和Linux/IA-32平台上,它包含了动态编译、自适应优化、垃圾回收、线程调度和同步的最新虚拟机技术。Jikes RVM的一大特色是它用Java编程语言实现并且是自我主机的,就是说,Jikes RVM的Java代码运行在自身而不需要第二台虚拟机。
Jikes RVM的成熟虚拟机,它采用Java语言编写来运行Java运行程序。不但运行时系统是用Java编写的,而且这个架构的所有其他组件都是用Java编写的。这些组件包括自适应和优化的编译系统、线程、异常处理和垃圾收集。Jikes RVM中默认的32位对象模式通常对于对象头是用两个字:第一个字引用类型信息块,第二个字保存对象锁定、散列和垃圾搜集的状态信息。位于对象头之后的是对象域。对于数组来说,第一个域是数组的长度,其余的是数组的元素。为了避免存取数组的移位,数组的大小就是对象头的大小和数组长度域,对对象的所有引用实际上引用这个对象内三个字的位置。这样就允许数组中的第一个元素在这个对象内的偏移为零,但是,这也意味着对象头总是在一个对象引用之后的三个字,而且,一个对象的第一个域始终位于这个对象的引用的负偏移位置。
作为一个元循环运行时,Jikes RVM自己进行编译而不是依赖另一个编译器以确保良好的性能。元循环创建了一个有效力的循环 :我们要在虚拟机的实现中编写清楚、雅观和高效的Java代码,这个强烈的愿望驱使我们发展创新的编译器优化和运行实现技术。关于优化编译器,它由许多状态组成,这些状态归并为三个主要阶段:高级中间表示(HIR);低级中间表示(LIR);机器级中间表示(MIR)。
至于托管运行时环境,想必大家对它的概念都是耳熟能详的,毕竟我们在学习.NET语言时背了不下几十遍。众所周知,在当今IT行业发展飞速的时代,Jikes 研究虚拟机(Jikes Research VirtualMachine(RVM))是为执行这样一种 Java 程序而设计的,这种 Java程序典型地用于研究基本的虚拟机(virtualmachine(VM))设计问题。它为科研院所提供一个灵活的测试平台(testbed),可以在这个测试平台上建立新的虚拟机技术的原型和试验各种各样的设计方案。JikesRVM 运行在 AIX/PowerPC、Linux/PowerPC 和 Linux/IA-32平台上,它包含了动态编译、自适应优化、垃圾回收、线程调度和同步的最新虚拟机技术。JikesRVM 的一大特色是它用 Java编程语言实现并且是自我主机(self-host)的,就是说,Jikes RVM 的Java 代码运行在自身而不需要第二台虚拟机。Jikes RVM 发行版是 IBMThomas J. Watson 研究中心的 Jalapen駉研究项目的一个独立开发的部分。
在一个托管运行时环境中运行代码是软件开发人员的普遍选择。实际上,大部分已开发代码都适合于托管运行时环境。然而,虽然运行时环境日趋流行,但是,多数代码都是用异于运行时环境支持的语言编写的。在Java虚拟机(Java应用程序的运行时环境)的情况下,一般用编程语言C和C++来实现这个运行时环境本身。
不知不觉间,《架构之美》已经阅读了大约3/2了,给我最大的感受就是:不要质疑你的付出,这些都会是一种积累一种沉淀,它们会默默铺路,只为让你成为更优秀的人!这大概就是老师让我们坚持读书的用意吧!
以上是关于寒假阅读笔记十的主要内容,如果未能解决你的问题,请参考以下文章