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

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

 2009-11-02 00:00:00 来源:WEB开发网   
核心提示: 通过存储应用程序在执行时将加载的类列表,并使用该列表填充 清单 2 中显示的循环的类名称列表,使用实时 Java 进行开发,第 2 部分: 改善服务质量(6),可以确保在应用程序开始运行之前加载这些类,当然,那么常见的操作延迟将基于直接复制这 12 字节所需的时间,但是与通用操作计时相比,不同时

通过存储应用程序在执行时将加载的类列表,并使用该列表填充 清单 2 中显示的循环的类名称列表,可以确保在应用程序开始运行之前加载这些类。当然,不同时刻执行应用程序可能加载不同的路径,所以一次执行的列表可能并不完整。出于此原因,如果应用程序正在开发之中,新编写或修改的代码可能依赖于未包含在列表中的新类(或者虽然包含在列表中,但不再需要的类)不幸的是,维护类列表可能是使用此方法预加载类的非常模麻烦的一部分。如果使用此方法,请记住,-verbose:class 输出的类名称与 -verbose:class does not match the format that's needed by Class.forName() 需要的格式并不匹配:详细输出中使用正斜杠将类包分开,而 Class.forName() 期望用句点来分开它们。

对于存在类加载问题的应用程序,可以借助一些工具来管理预加载,包括 Real Time Class Analysis Tool (RATCAT) 和 IBM Real Time Application Execution Optimizer for Java(参见 参考资料)。这些工具能够在一定程度上自动识别要预加载的正确类列表,以及将类预加载代码合并到应用程序中。

JIT 代码编译暂停

JIT 优化示例

JIT 优化的一个初始示例是数组副本专业化。对于经常执行的方法,JIT 编译器可以分析特定数组副本调用的长度,确定是否有些长度是相同的。在分析调用一段时间之后,JIT 编译器可以发现数组副本长度几乎总是为 12 字节。了解这一点之后,JIT 可以为数组副本生成一个非常快速的路径,以对目标处理器最有效的方式直接复制所需的 12 字节。JIT 插入一个条件检查,查看长度是否为 12 字节,如果是,则执行这个极其高效的快速路径副本。如果长度不为 12,则生成一条不同路径来以默认方式执行副本,这可能需要更长的时间,因为它需要处理任何数组长度。如果应用程序中的大多数操作都是用快速路径,那么常见的操作延迟将基于直接复制这 12 字节所需的时间。但是与通用操作计时相比,需要具有不同长度的副本的任何操作都将被延迟。

上一页  1 2 3 4 5 6 7 8 9 10  下一页

Tags:使用 实时 Java

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