武汉的开发者们注意啦!AI技术战略、框架以及最佳实战尽在Azure OpenAI Day 了解详情
写点什么

Java 进入实时领域

  • 2007-05-22
  • 本文字数:1444 字

    阅读完需:约 5 分钟

在 Java One 上 Sun 最终宣布了 JSR-1(2006 年 7 月最终定稿的 Java 实时规范)第一个实现的发布。根据 JSR 的定义,实时规范是用来支持“在线程调度,同步额外开支(Synchronization Overhead),锁队列顺序,类的初始化,最大中断响应反应时间以及垃圾回收特性等各个方面需要很强的确定性保证和控制能力的”系统。

Sun 的这个实现,又被称为 Sun Java 实时系统(Real-Time System,RTS)2.0 ,将通过常规的 OEM 渠道提供给开发人员。

营销卖点

RTS 2.0 基于 Java 5 并遵循 JSR1 规范,提供了一个健壮的实时时序调度系统(Scheduling System)。这个系统的核心(Centerpiece)是一个实时垃圾回收器,这是一个高度可配置且非常具有可预测性的垃圾回收器。(它不会在所有的硬件平台上都很有效率,因为有些平台没有对真正的实时系统提供必要的硬件支持,但是 RTS 依然能提供较好的控制性和可预测性)。对 RTS 的支持已集成到 NetBeans 了。

RTS 与 WebLogic 实时系统的比较:我也一样吗?

如 Bill Roth 昨天在他的 Blog 里间接提到的那样,两年前 BEA 发布了一个 Java 实时系统,它设计用来减少垃圾回收对 Java 应用系统性能的影响,并增加这些应用系统的可预测性。其目的是平滑性能,减少由于长时间的垃圾回收带来的性能干扰。Sun 在实时 Java 方面的资深工程师 Greg Bollella 评价说这对实时垃圾回收来说只是一个较少暂停(Low Pause)的方法。所以为什么不把更多的注意力投向 RTS 2.0 呢?

RTS 2.0 强调的是系统的可预测性,这是与 JSR1 规范相一致的。正如以前在InfoQ 上报导的,WebLogic 的实时提供了小于30 毫秒的反应时间,这对标准的垃圾回收来说是一个引人注目的改进。虽然Sun 对“实时”的解释是这样的一个实现中要保证来自垃圾回收的干扰小于200 毫秒,开发人员通过一些额外的工作能控制更多的可预见性工作的执行,从而摆脱垃圾回收带来的不良影响。

开发人员的看法

实时垃圾回收器在它自己的一个单独线程中运行,它有一个赋给它的优先级。当一个开发人员创建了一个java.lang.RealtimeThread 并赋给它一个优先级,这个优先级可以高于也可以低于垃圾回收器的优先级。如果优先级高于垃圾回收器,此线程将只在垃圾回收过程中特定的临界区域(Critical Sections)等待垃圾回收器。根据Greg 的分析,这些临界区域的典型执行时间不会超过120 毫秒。

对那些需要更多控制权的系统来说,还有更复杂的java.lang.NoHeapRuntimeThread(NHRT)可以用。一个NHRT 在它自己私有的堆上进行操作,在垃圾回收器之外,因此在通常条件下它不需要等待垃圾回收器。NHRT 唯一的延迟来自Solaris 10 的分发系统(Dispatching System),一般会引起10 毫秒内的延迟。

好的实时编程方法还在设计中(The key to good real-time programming is still in design)。RealtimeThread 严重依赖于用于调整实时垃圾回收器的命令行参数,不适当的调节参数会导致线程等待垃圾回收器释放内存。NHRT 的复杂性非常显著:因为Java 开发人员必须学会管理他们的私有堆(NHRT 和正常堆中的对象之间的通信也很复杂)。

下一步如何?

Greg Bollella 还提供了他未来实时 Java 的深入见解。RTS 2.1 可能会包含一些工具以及一些有用的脚本和指南。这些工具用于帮助开发人员调整所有重要的用于管理实时垃圾收集的命令行参数。可能还会添加对垃圾收集的“人体工程学(Ergonomic)”调优的支持。RTS 2.0 还没有支持 JSR 282 中的扩展特性,也没有考虑 JSR 302 中关于重大安全要求的支持,后者能为系统的提升提供充足的机会。

查看英文原文: Java Goes Real Time

2007-05-22 19:301128

评论

发布
暂无评论
发现更多内容

一文带你简单了解多租户模型定义以及好处

行云管家

SaaS 多租户

稀疏场景高性能训练方案演变|京东广告算法架构体系最佳实践

京东零售技术

人工智能 架构 算法 GPU算力

Native Instruments Kontakt 7 for Mac v7.8.0激活版下载

影影绰绰一往直前

提升系统管理:监控和可观察性在DevOps中的作用

禅道项目管理

项目管理 DevOps 系统管理

foobar2000 for mac(多功能音频播放器)v2.6.2免激活版

影影绰绰一往直前

面试官:什么是JIT、逃逸分析、锁消除、栈上分配和标量替换?

王磊

Java 面试

linux的find命令常用说明

百度搜索:蓝易云

云计算 Linux 运维 云服务器 find

IPQ9574 and QCN9274 Industrial grade and commercial difference? Performance, transmission, etc

wifi6-yiyi

qcn9274 ipq9574

10V单通道负载开关

攻城狮Wayne

Linux系统gunzip命令有何作用?如何使用?

百度搜索:蓝易云

云计算 Linux 运维 云服务器 gunzip

数字音频处理软件 Steinberg Cubase Artis 10激活版 附完整破解教程

Rose

Syncovery for mac v10.11.3激活版 文件备份和同步工具

影影绰绰一往直前

《深入理解计算机系统(原书第3版)》PDF

程序员李木子

【年后跳槽必看篇-非广告】Kafka核心知识点-第四章

派大星

kafka Java’

【亿级数据专题】「分布式消息引擎」 盘点本年度我们探索服务的保障容量的三大关键方案实现

洛神灬殇

分布式 熔断 限流 降级 2024年第二十七篇文章

Wireshark中的ARP协议包分析

小齐写代码

创业7年复盘,中美企业服务市场差异浅析

Kyligence

AI 数据分析

如何解决系统报错:nf_conntrack: table full, dropping packets

百度搜索:蓝易云

云计算 Linux 运维 服务器 云服务器

使用 HashiCorp Vault 保护 NGINX 中的 SSL 私钥

NGINX开源社区

HashiCorp SSL/TLS nginx 开源版 安全防护 保护 SSL 密钥

数据库新手必知!轻松学习SQL外键约束的核心原理和实用技巧

测试人

软件测试

Covalent Network:全新链上协议收入体系,财务透明革命引领者

股市老人

XMind 转 Excel 与 CSV 的思路与实现

牧遥

Excel XMind 测试工具 csv Java’

如何对混合日志进行自动化解析

华为云开发者联盟

开发 华为云 华为云开发者联盟

四方维ECAD模型成为元器件的新标配

财见

Java 编程指南:入门,语法与学习方法

小万哥

Java 程序人生 编程语言 软件工程 后端开发

Amadeus Pro for Mac v2.8.13激活版(多轨音频编辑器)

影影绰绰一往直前

File list Export for Mac(文件列表导出工具)v2.9 激活版

影影绰绰一往直前

Cycling 74 Max for Mac v8.6.0激活版 音乐可视化编程软件

影影绰绰一往直前

Java进入实时领域_Java_Chris Greenlee_InfoQ精选文章