问题标签 [openj9]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1356 浏览

openj9 - 如何在 Openj9 中使用 AOT 编译器?

我已经知道 Openj9 中有一个“动态 AOT”,其中 Openjdk9 有一个 AOT 编译器(jaotc)来将字节码编译为共享库。

但是 Openj9 没有 jaotc 之类的程序,它使用“共享类”来存储 JITed 代码,预计其他 JVM 也可以使用它来加快它们的启动时间。

我有以下问题:

  1. 如何确定 Openj9 JVM 是否使用由另一个 JVM 生成的 JITed 代码?(在openjdk9中,有一个选项“-XX:+PrintAOT”可以观察)
  2. 如何使用 Openj9 的 AOT?我使用选项“-Xshareclasses”执行一个程序,然后再次执行该程序?
  3. 有没有关于 Openj9 AOT 的文档?

如果有任何建议,我们将不胜感激。谢谢!

0 投票
2 回答
1057 浏览

java - 无法使用 Eclipse OpenJ9+181 构建 OpenJFX

新的Eclipse J9 jvm没有与 JavaFX 捆绑在一起,所以我尝试构建 OpenJFX 但失败了。

我相信我已遵循OpenJFX 网站上的所有构建说明。我安装了 Gradle 3.1、Ant 和所需的库。我正在运行 Fedora 26。

J9 似乎因某种分段错误而失败。这是我gradle在 OpenJFX mercurial 存储库中运行后收到的错误消息。

有人对我如何让 OpenJFX 使用 J9 构建有任何建议吗?

提前致谢。

0 投票
2 回答
1284 浏览

openj9 - OpenJ9 和 docker 容器?

从历史上看,HotSpot 在 docker 容器中运行的记录很差,错误地判断了分配的资源(例如 RAM)。不过,情况正在慢慢好转。

OpenJ9 如何与 docker 容器保持一致,以及它在多大程度上了解容器提供的资源(内存、套接字、线程等)

此外,在 JavaOne 2017 演示中提到 OpenJ9 可以跨不同的 OpenJ9 VM 缓存 jit 编译的类。当虚拟机被限制在不同的容器中时(或)如果容器化的 JVM 共享一个 docker 卷,这种共享缓存是否可能?

0 投票
1 回答
261 浏览

openj9 - OpenJ9 中的高级 AVX/AVX2 矢量运算

在 JavaOne 2017 上,英特尔展示了在 HotSpot 中整合 AVX2 矢量指令的非常有趣的方法。这将允许机器学习和其他数据密集型 Java 应用程序利用专门的 AVX/AVX2 指令来实现更好的性能。

OpenJ9 用户将受益于英特尔/甲骨文的合作以及即将推出的英特尔基于 OpenJDK 的向量库吗

0 投票
1 回答
245 浏览

openj9 - Java9 链接和 OpenJ9

java 9 模块中最酷的特性之一是能够准备一个非常优化的 JRE+模块包,在此过程中可以应用多种优化技术。虽然尚未实施,但 HotSpot 团队正计划在此阶段进行 AOT 编译。

这个链接阶段的 OpenJ9“技巧包”和优化是什么?

0 投票
2 回答
903 浏览

openj9 - OpenJ9 和 Graal/Truffle 项目

HotSpot JVM 团队正在开发非常酷的项目Graal/Truffle,它允许开发人员动态编译/注入 Java、Javascript(和其他)以在 JVM 速度下运行。问题: - OpenJ9 可以与 Graal/Truffle 互操作吗?- 如果 OMR 类似于 Graal/Truffle,你能对比一下吗?

0 投票
1 回答
134 浏览

java - 调用 j9port_startup_library 时访问冲突

我已经使用这些说明为 Windows 构建了 openj9:https ://github.com/eclipse/openj9/blob/master/buildenv/Build_Instructions_V8.md#windows

当我尝试以下代码时(Visual Studio 2017):

我收到访问冲突j9port_startup_libraryException thrown at 0x00007FFF0FC9430A (j9thr29.dll) in sample.exe: 0xC0000005: Access violation reading location 0x0000000000000000.

检查 portlib 表明 portGlobals 是NULL我认为不应该的。 端口库

当我在调试器之外运行 exe 时,我看到以下断言(由于某种原因我在调试器中看不到):

** 断言失败 ** j9prt.504 at common/j9port.c:404 Assert_PRT_true((omrthread_self() != ((void *)0)))

** 断言失败 ** omrport.0 at ../../omr/port/common/omrport.c:515 Assert_PRT_true((omrthread_self() != ((void *)0)))

我错过了一个步骤还是导致此访问冲突的原因是什么?

编辑:我使用 Visual Studio 2010 在 Windows 7 x64 上重建项目并在 VS2010 中运行在 MCE 之上,VS 显示我们崩溃了

omrthread.c

self 为 nil,因此抛出 ACCESS_VIOLATION: screenshot 在此处输入图像描述.com/MMW59.png

0 投票
2 回答
232 浏览

java - OpenJ9 VM 对象布局

OpendJDK 有一个Java 对象布局 (JOL)工具,它允许估计指定对象的实例实际内存大小。它可以显示 HotSpot 的对象布局,但在 OpenJ9 中是否相同?

0 投票
1 回答
79 浏览

java - JVM:向堆访问添加挂钩

我希望对我的 Java 项目进行分析。为了获得结果,我想向 JVM 添加一个“钩子”,以便每次发生堆访问时,都会调用“钩子”并进行一些跟踪。我一直在研究JVMTI,但这似乎并没有给我我所期望的。

我有几个问题:

  • 是否可以添加这样的钩子?
  • 如果可能,我应该使用哪些正确的工具/界面?
  • 如果没有执行此操作的现有工具,我可以通过修改 JVM 代码库来实现吗?

谢谢。

0 投票
1 回答
146 浏览

java - install4j:如何为启动器使用备用 jvm

我们正在尝试使用替代 jvm,这来自 https://www.eclipse.org/openj9/

当使用 /create-i4j-log 启动我们的启动器时,我们得到:

我认为问题是,jvm.dll 位于 jdk8u192-b12\jre\bin\j9vm\jvm.dll

然后启动器说,“无效的 jvm 安装”并退出。

那么如何使用呢?