WEB开发网
开发学院软件开发Java 使用实时 Java 进行开发,第 2 部分: 改善服务质量... 阅读

使用实时 Java 进行开发,第 2 部分: 改善服务质量

 2009-11-02 00:00:00 来源:WEB开发网   
核心提示:Java 应用程序中的易变性(通常是由暂停或延迟导致的,其发生时间无法预测)可能在整个软件栈中发生,使用实时 Java 进行开发,第 2 部分: 改善服务质量,延迟可由以下因素引起:硬件(缓存期间)固件(处理 CPU 温度数据等系统管理中断的过程中)操作系统(响应一个中断或执行定期调度的后台活动)在相同系统上运行的其他

Java 应用程序中的易变性(通常是由暂停或延迟导致的,其发生时间无法预测)可能在整个软件栈中发生。延迟可由以下因素引起:

硬件(缓存期间)

固件(处理 CPU 温度数据等系统管理中断的过程中)

操作系统(响应一个中断或执行定期调度的后台活动)

在相同系统上运行的其他程序

JVM(垃圾收集、即时编译和类加载)

Java 应用程序本身

很难在较高级别上补偿较低级别上的延迟,所以,如果您试图仅在应用程序级别解决易变性,您可能只是转移了 JVM 或 OS 延迟,并没有解决实际问题。幸运的是,较低级别的延迟可能比较高级别上的延迟相对短一些,所以只有在降低易变性的需求非常强烈时,才需要深入到比 JVM 或 OS 更低的级别上。如果需求不是那么强烈,您可以将精力集中在 JVM 级别上或应用程序中。

实时 Java 提供了必要的工具来堵截 JVM 和应用程序中的易变性源头,交付用户要求的服务质量。本文详细介绍 JVM 和应用程序级别上的易变性源头,介绍可用于减轻其影响的工具和技术。然后介绍一个简单的 Java 服务器应用程序来演示其中一些概念。

解决易变性源头

JVM 中的易变性主要源自于 Java 语言的动态特性:

内存绝不会被应用程序显式释放,而是被垃圾收集器定期回收。

类在被应用程序首次使用时才进行解析。

本机代码在应用程序运行时由即时(JIT)编译器编译(而且可以重新编译),基于经常调用的类和方法。

在 Java 应用程序级别上,线程管理是与易变性相关的关键区域。

垃圾收集暂停

1 2 3 4 5 6  下一页

Tags:使用 实时 Java

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接