Apusic文档中心
首页
  • 应用服务器 AAS
  • 负载均衡器 ALB
  • 分布式消息队列 ADMQ
  • 分布式缓存 AMDC
  • 分布式配置中心 ADCC
  • Java开发工具包软件 AJDK
  • 搜索引擎 ASE
  • 中间件云平台 ACP
  • 统一管理平台 AUMP
  • 云原生中间件管理 ACMP
  • DevOps平台 ADOP
  • 许可授权中心 ACLS
  • Copilot智能问答系统 ACS
  • 监控平台 AMP
  • 智能日志 AILP
  • 应用性能管理 AAPM
  • 智能告警 AAlarm
  • 主数据管理 AMDM
  • 数据交换平台 ADXP
  • 企业服务总线 AESB
  • 数据智脑 ADPR
  • 服务治理 ASGP
  • 统一身份管理 AIDM
  • 标准模板
  • Markdown教程 (opens new window)
  • VuePress官方社区 (opens new window)
  • 帮助
贡献文档 (opens new window)
首页
  • 应用服务器 AAS
  • 负载均衡器 ALB
  • 分布式消息队列 ADMQ
  • 分布式缓存 AMDC
  • 分布式配置中心 ADCC
  • Java开发工具包软件 AJDK
  • 搜索引擎 ASE
  • 中间件云平台 ACP
  • 统一管理平台 AUMP
  • 云原生中间件管理 ACMP
  • DevOps平台 ADOP
  • 许可授权中心 ACLS
  • Copilot智能问答系统 ACS
  • 监控平台 AMP
  • 智能日志 AILP
  • 应用性能管理 AAPM
  • 智能告警 AAlarm
  • 主数据管理 AMDM
  • 数据交换平台 ADXP
  • 企业服务总线 AESB
  • 数据智脑 ADPR
  • 服务治理 ASGP
  • 统一身份管理 AIDM
  • 标准模板
  • Markdown教程 (opens new window)
  • VuePress官方社区 (opens new window)
  • 帮助
贡献文档 (opens new window)
中间件
  • 金蝶Apusic应用服务器

  • 金蝶Apusic负载均衡器

  • 金蝶Apusic分布式消息队列

  • 金蝶Apusic分布式缓存

  • 金蝶Apusic分布式配置中心

  • 金蝶Apusic Java开发工具包软件

    • 产品白皮书
    • V8.0

    • V17_with_CRaC

  • 金蝶Apusic全文检索

产品白皮书

# 引言

# 概述

JDK ( Java Development Kit ) 是 Java 语言的软件开发工具包,是 Java 的核心,包含了 Java 的运行环境 ( JVM ) 和 Java 系统类库以及 Java 工具,为 Java 程序的开发、编译和运行提供全生命支持。JDK 是是 JavaSE(Java Platform, Standard Edition)规范标准的实现,也是 Java EE / JakartaEE 和 Java ME 编程的基础。

# 面向的读者

本文面向技术决策者和企业架构师、应用开发工程师及应用系统运维开发工程师。

# 产品介绍

# 产品概述

Apusic JDK 是一款高性能、生产环境就绪的OpenJDK发行版本,基于华为毕昇 JDK发展而来,完全兼容开源 OpenJDK,支持多种运行平台,适合微服务、云原生应用、大数据等场景。

# 产品介绍

Apusic JDK 是一款高性能、生产环境就绪的OpenJDK发行版本,完全兼容开源 OpenJDK,基于华为毕昇 JDK发展而来,支持多种运行平台,具备更快的云应用启动速度,更好的性能以及提供更为便捷的分析、诊断工具,适合微服务、云原生应用、大数据等实际应用场景,提供最优的 Java 生产环境及解决方案。此外,Apusic JDK 也是 Apusic 应用服务器的运行环境,适配大量 Java 应用程序,解决了业务实际运行中遇到的多个问题,能够为 Java 应用程序提供一个安全、稳定、可扩展、高性能的运行环境。

# 面向的客户

使用 Java 开发的应用程序

# 产品架构

# 总体架构

Apusic JDK 功能架构主要包含 Java 语言规范、Java 类库( JavaSE API )、Java 虚拟机 ( JVM )、Java 编译器 ( javac) 和一系列开发工具构成。

jdk-architecture

# 关键技术特性

# 支持 JFR

JFR(Java Flight Recorder)是 Java 平台上的一款性能分析工具,它能够捕获和记录JVM运行时的各种数据,帮助开发人员分析应用程序的性能问题并优化程序性能。可通过 JVM 参数开启 : -XX:StartFlightRecording:filename=record.jfr,dumponexit=true

# AppCDS

Java 程序运行初始,类的加载是一个比较耗时的过程,且在每次程序运行中均需要执行一遍。而 CDS(Class Data Sharing)技术,把类加载后的数据保存到文件中。在下次运行时,直接将加载后的类数据从文件中恢复到内存中,不需要再重新执行类的加载过程,从而提高性能。而 AppCDS 在 CDS 的基础上,增加了对应用类的支持。

# 快速序列化

序列化是将一个对象序列化为字节流,方便进行传输和保存。OpenJDK 原生的序列化机制耗时较长,序列化的数据太大,反序列化过程查找classmeta太慢。Apusic JDK 优化序列化和反序列化的过程,加快了序列化的速度。

# Dynamic CDS特性

Dynamic CDS 技术是 OpenJDK 社区在高版本提出的用于提高Java应用内存使用效率和启动速度的新特性。Apusic JDK 支持该特性,相对于 AppCDS 而言,共享类扩展至自定义类加载器加载的类,扩展了共享类的支持范围,以带来显著的性能提升。

# G1 垃圾收集器优化

  • G1 NUMA-Aware特性:在NUMA架构下,跨NUMA节点操作内存相比本NUMA节点操作内存时延会成倍增加,NUMA-Aware特性目的是让JAVA用户尽可能操作本NUMA节点上内存,从而提升JVM访存速度。
  • G1 Full GC并行化:G1 算法在mark、prepare、adjust、compact等阶段优化成多线程执行方式,有效降低Full GC的STW时间,改善系统最坏情况下的G1 Full GC性能。
  • G1 GC内存伸缩特性:OpenJDK 8 中 G1 垃圾收集器无法及时将空闲的 Java 堆内存释放给操作系统。G1 仅在 FullGC 才会把空闲的Java堆内存释放给操作系统。但由于 G1 尽可能避免触发 FullGC,因此在许多情况下,除非强制从外部执行 FullGC,否则 G1 不会将空闲的Java堆内存释放给操作系统。Apusic JDK 能够检测应用负载下降和Java堆有空闲内存的情况,并自动减少JVM Java堆占用情况,将空闲内存资源归还给操作系统。

# 运维工具增强

  • jcmd工具新增 VM.classes 命令,打印所有类的信息。
  • jcmd工具新增 VM.classloaders 命令,打印类加载器层次结构和类加载器详细信息。
  • jcmd工具新增 VM.metaspace 命令,打印元空间的统计信息。
  • jcmd工具新增 System.trim_native_heap 命令,底层调用glibc函数malloc_trim,将glibc不用的内存及时还给操作系统。
  • Thread.print 功能增强:增强 jstack 和 jcmd Thread.print 功能,打印线程堆栈时输出更多的信息(cpu,elapsed,allocated,defined_classes)
  • TraceClassLoading 功能增强:增强TraceClassLoading功能,输出更多的类加载信息(时间、线程id、类加载器以及类加载时的线程堆栈),方便用户排查类加载相关问题。
  • 异步GC日志配置:解决写入GC日志可能会被阻止,进程中维护一个循环固定大小的内存缓冲区,先将GC日志写入到缓冲区,然后通过单独的线程将缓冲区的内容刷新到GC日志文件中。
  • glibc内存整理:JVM 通过 glibc来进行内存的分配与释放,但是有时(取决于分配的粒度和许多其他因素)存在即使JVM调用free(3)将内存返回给glibc,glibc依然保留这些已释放的C堆内存而不是返还给操作系统,这将造成不好排查的(非JAVA/JVM层面的)RSS内存占用持续增长。
  • jmap 并行扫描:可指定并行线程数,有效提高jmap堆扫描效率、减少扫描时间。

# 兼容性

广泛兼容国产化操作系统和芯片

# 芯片架构

  • 鲲鹏
  • 飞腾
  • 海光
  • 海思

# Linux系统

  • 国产Linux操作系统:麒麟操作系统、统信UOS、深度Linux、优麒麟、红旗Linux、中标麒麟、华为欧拉、中科方德、凝思等
  • RedHat 系列
  • CentOS 系列
  • Ubuntu 系列
  • Suse Linux 系列
编辑页面 (opens new window)

← 功能清单 安装手册→

  • 浅色模式