Chronicle中Java9Memory的来源
Source of Java9Memory in Chronicle
我对 openHFT 项目使用的堆外机制很好奇,正在寻找下面的 class 文件(在 github 中找不到任何地方),如源代码所定义这里:
Class<? extends Memory> java9MemoryClass = Class
.forName("software.chronicle.enterprise.core.Java9Memory")
.asSubclass(Memory.class);
来自 github 存储库:https://github.com/OpenHFT/Chronicle-Core/blob/master/src/main/java/net/openhft/chronicle/core/OS.java
我的问题是:这个 class 是开源的吗?如果是,它是如何工作的?谢谢
Java 9 支持是单独的,因为它是一个移动的目标,但是我们会将其添加为子模块,如果您需要 运行 在 java 9 上,您可以将其包含在内。这项工作仍在进行中。
此 class 不可用,将来会被删除。
我们目前 Java9 兼容性的方法是发布针对语言级别 1.8 构建的 OpenHFT 工件。 Java 运行时中的任何不兼容性(例如 class 重命名)将通过使您的程序需要一个包含 Java9 特定覆盖的 Java9 模块来处理。
回答您关于 class 如何工作的问题 - Chronicle 库将在版本 9 JVM 上 运行 时继续使用 sun.misc.Unsafe。有必要手动将导出添加到命令中以允许这样做,例如:
--add-exports=java.unsupported/sun.misc=ALL-UNNAMED
我对 openHFT 项目使用的堆外机制很好奇,正在寻找下面的 class 文件(在 github 中找不到任何地方),如源代码所定义这里:
Class<? extends Memory> java9MemoryClass = Class
.forName("software.chronicle.enterprise.core.Java9Memory")
.asSubclass(Memory.class);
来自 github 存储库:https://github.com/OpenHFT/Chronicle-Core/blob/master/src/main/java/net/openhft/chronicle/core/OS.java
我的问题是:这个 class 是开源的吗?如果是,它是如何工作的?谢谢
Java 9 支持是单独的,因为它是一个移动的目标,但是我们会将其添加为子模块,如果您需要 运行 在 java 9 上,您可以将其包含在内。这项工作仍在进行中。
此 class 不可用,将来会被删除。
我们目前 Java9 兼容性的方法是发布针对语言级别 1.8 构建的 OpenHFT 工件。 Java 运行时中的任何不兼容性(例如 class 重命名)将通过使您的程序需要一个包含 Java9 特定覆盖的 Java9 模块来处理。
回答您关于 class 如何工作的问题 - Chronicle 库将在版本 9 JVM 上 运行 时继续使用 sun.misc.Unsafe。有必要手动将导出添加到命令中以允许这样做,例如:
--add-exports=java.unsupported/sun.misc=ALL-UNNAMED