Java HotSpot性能引擎的体系结构(3)

以下部分将介绍Java HotSpot性能引擎的重要的体系结构及其特性。
4. 内存模型
4.1 无句柄对象
Java 2 软件开发工具包(SDK)使用间接句柄来表示对象的引用。虽然在垃圾回收过程中,这样做会使对象的重新定位变得更加简单,但这会引发一个重要的性能瓶颈,因为大多数对Java编程语言对象的实例变量的访问都需要两个层次的间接引用。Java HotSpot性能引擎消除了句柄的概念:对象的引用被实现为直接指针,从而可提供对实例变量的C-速度访问。垃圾回收器则负责在内存被回收过程中,当对象被重新定位时,寻找并更新所有对在适当位置上的对象的引用。
4.2 双字(Tow-Word)对象头
Java HotSpot性能引擎使用双机器-字对象头,而不是象Java 2 SDK那样使用三字对象头。由于平均的Java编程语言的对象尺寸较小,因而这种技术对节省空间产生了重要作用(大约节省了8%的堆的大小)。第一个对象头的字包含了身份标识哈希码和GC状态等信息;第二个对象头的字是一个对对象的类的引用。只有数组才有第三个对象头字段,它是用来表示数组大小的。
4.3 将映射数据表示为对象
类、方法以及其它内部映射数据被直接表示为堆上的对象(尽管这些对象也许不能被基于Java技术的程序所直接访问)。这不仅简化了内存模型,而且使你可以采用与回收其它Java编程语言对象相同的垃圾回收器来回收这类映射数据。
4.4 本地线程支持,包括任务抢先和多重处理技术
每个线程方法的激活栈是使用宿主操作系统的线程模型来表示的。Java编程语言方法和本地方法可共享相同的栈,从而可允许在C和Java编程语言间的快速调用。使用宿主操作系统的线程调度机制可支持全抢先的Java编程语言线程。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值