性能调整
可以通过对 Eclipse OpenJ9 VM 进行调优、启用硬件功能部件或在应用程序代码中使用特定 API 来提高应用程序性能。
OpenJ9 配置为从一组缺省选项开始,这些选项为具有典型工作负载的 Java™ 应用程序提供最佳运行时环境。 但是,如果应用程序为非典型应用程序,那么可以通过调整 VM 来提高性能。 单击链接以了解有关以下选项的更多信息:
- 选择垃圾回收策略
- OpenJ9 包含多种垃圾回收策略。 要了解有关这些策略以及可从中受益的应用程序工作负载类型的更多信息,请参阅 OpenJ9 用户文档中的 垃圾回收策略 。
- 通过类数据共享来缩短启动时间
- 您可以在运行中的 VM 之间共享类数据,这样可缩短创建高速缓存后 VM 的启动时间。 有关更多信息,请参阅 OpenJ9 用户文档中的 类数据共享简介 。
- 选择大页面
- 如果应用程序分配大量内存,并频繁访问该内存,您可能希望在系统上启用大页面支持。 有关更多信息,请参阅 OpenJ9 用户文档中的 配置系统 。
- 针对云环境进行优化
- 如果您正在使用 Linux® 的垃圾回收策略,您可以使用 -XX:IdleTuningMinIdleWaitTime 选项来调整释放可用内存页面的时间。 此设置可以减少内存用量,因而有助于降低在云环境中运行应用程序的成本。 更多信息,请参阅 -XX:IdleTuningMinIdleWaitTimeOpenJ9 用户文档。
也可以通过启用硬件功能或使用应用程序代码中特定的 API 来提高性能。 单击链接以了解有关以下选项的更多信息:
- 本机数据
- 如果 Java 应用程序处理本机数据,请考虑编写应用程序以利用 Data Access Accelerator API 中的方法。
- 利用远程直接存储器存取 (RDMA)
- 支持远程直接存储器存取 (RDMA) 的高性能网络基础结构旨在加快应用程序之间的通信速度。
- 在 Linux 系统上,现有 Java 套接字应用程序可以通过使用 Socket 和 ServerSocket API 的扩展来利用支持 RDMA 的网络适配器。 有关更多信息,请参阅 Java Sockets over Remote Direct Memory Access (JSOR) (仅限Linux )。 或者,您可以编写使用 jVerbs 库中的 API 的应用程序,以直接通过具有 RDMA 功能的基础结构进行通信。 请参阅 jVerbs 库 (仅限Linux )。
- 在 z/OS® 系统上, OpenJ9 支持使用 SMC-R 协议解决方案,以使 TCP 套接字应用程序能够透明地使用 RDMA。 此功能部件支持直接、高速、低延迟、内存到内存(对等)通信。 有关更多信息,请参阅 通过远程直接内存访问进行共享内存通信 (仅限z/OS )。
- 利用图形处理单元 (GPU)
- 在 Linux 和 Windows 系统上,可以通过将某些处理功能从处理器 (CPU) 卸载到图形处理单元来提高 Java 应用程序的性能。 有关更多信息,请参阅 利用图形处理单元。
调试性能问题
如果遇到性能问题,请参阅: