标签: jvm-hotspot

如何下载最新的java虚拟机(Hotspot)源代码?

我将为 Java 社区做出贡献,并且我对 JVM 很感兴趣。

\n\n

现在我想下载最新的 JVM Hotspot 源代码并跟踪更新。

\n\n

首先,我访问http://openjdk.java.net/

\n\n

在它的左侧我发现一些有用的标签

\n\n
Source code: \nMercurial \nBundles\n...\nJDK 6\nJDK 7\nJDK 7 Updates\nJDK 8 \xc2\xb7 Java SE 8\nJDK 8 Updates\nJDK 9 \xc2\xb7 Java SE 9\nJDK 10\n
Run Code Online (Sandbox Code Playgroud)\n\n

我只能找到有关如何下载JDK8u源代码的说明:http://openjdk.java.net/projects/jdk8u/

\n\n

地位

\n\n

我们开放修复 jdk8u-dev 森林中的 8u152。(发帖时间为2017-06-06 14:23:36

\n\n

源代码

\n\n

可以使用以下命令克隆用于持续开发的 jdk8u-dev 林:hg clone http://hg.openjdk.java.net/jdk8u/jdk8u-dev;cd jdk8u-dev;sh get_source.sh .

\n\n

可以使用以下命令克隆相应的主林jdk8u:hg clone http://hg.openjdk.java.net/jdk8u/jdk8u;cd jdk8u;sh get_source.sh .

\n\n

此外,可以通过克隆 8u 主林http://hg.openjdk.java.net/jdk8u/jdk8u并使用 \' jdk8u102-b14\' …

java jvm jvm-hotspot

1
推荐指数
1
解决办法
1736
查看次数

java vm:如何记录类卸载

我无法在这里找到使用 Java VM (JVM) 参数来记录类卸载的 Web 搜索工作方式。

这里http://www.herongyang.com/JVM/ClassLoader-JVM-Option-verbose-class.html建议调用java -verbose:class -version,但据说是为了加载,并且只给出了加载的日志。

关于Java HotSpot VM 选项

-XX:-TraceClassUnloading 跟踪类的卸载。-XX:-TraceClassLoading 跟踪类的加载。

java -XX:-TraceClassUnloading -version 不输出有关课程的信息:

[0.004s][warning][arguments] -XX:-TraceClassUnloading is deprecated. Will use -Xlog:class+unload=off instead.
java version "13" 2019-09-17
Java(TM) SE Runtime Environment (build 13+33)
Java HotSpot(TM) 64-Bit Server VM (build 13+33, mixed mode, sharing)
Run Code Online (Sandbox Code Playgroud)

和:

java -XX:-TraceClassLoading -version
[0.002s][warning][arguments] -XX:-TraceClassLoading is deprecated. Will use -Xlog:class+load=off instead.
java version "13" 2019-09-17
Java(TM) SE Runtime Environment (build 13+33)
Java HotSpot(TM) 64-Bit …
Run Code Online (Sandbox Code Playgroud)

java monitoring jvm jvm-hotspot

1
推荐指数
1
解决办法
2097
查看次数

如何使用 JNI+JVMTI 捕获 JIT 的去优化事件,例如“unstable_if”

我真的很想知道如何捕捉 JIT 的去优化事件。
今天,我读到了 Andrei Pangin 的精彩回答当忙碌的 Java 线程绑定到物理核心时,是否会因为到达代码中的新分支而发生上下文切换?并再次考虑。

我想用 JNI+JVMTI 捕捉 JIT 的去优化事件,如“unstable_if、class_check 等”,然后向我的监控系统或其他任何东西发送警报。

是否可以?它对 JVM 的性能有什么影响?

java jit jvm jvm-hotspot jvmti

1
推荐指数
1
解决办法
195
查看次数

rt.jar 如何加载到 jvm - 热点?

我正在学习 jvm 的工作原理。现在我想弄清楚在什么时候运行 rt.jar 被加载到 VM 中。我可以在代码中的哪个位置看到它?

jvm-hotspot

1
推荐指数
1
解决办法
61
查看次数

JVM C1 和 C2 编译时间基准

我有一个简单的 hello world 程序,并设置 -XX:TieredStopAtLevel=[0 to 4]. 我理解它如何使用解释器或 C1 或 C2 或 C1 和 C2 来编译代码的基本区别。

如果我使用不同的数字,我想知道真正的基准测试细节以了解编译时间和其他细节。

jvm jvm-hotspot jvm-arguments

1
推荐指数
1
解决办法
135
查看次数

-Spot选项对HotSpot JVM的影响是什么?

我找不到任何有关-server在启动sun HotSpot JVM时传递选项的确切效果的明确文档.

任何人都可以总结它的作用吗?

java sun jvm-hotspot

0
推荐指数
1
解决办法
1984
查看次数

Java堆/池大小

当我启动JVM时,它至少保留{{xms}}个内存,对吗?这意味着这个内存对于JVM进程是私有的(它是malloced),是吗?当JVM需要增加堆储备(mallocs)的内存时.但是多少钱?我不相信它保留的确尽可能多,可能有一定的步骤(池?)大小.

如何配置这个"步长"?

所有这一切都会发生,直到达到{{xmx}}并抛出OOM,对吧?

当JVM启动GC时?不是说xmx,而是保留堆大小(这个池的顶部)?

如果是这样,最好将xms设置为接近xmx以防止许多无用的GC.我会有一个巨大的GC,而不是很多小的,每个GC冻结我的JVM的bug,所以最好有一个,对吗?

java garbage-collection jvm jvm-hotspot jvm-arguments

0
推荐指数
1
解决办法
682
查看次数

使用访问器/ getter可以更快?

背景:我打算将我用 C++ 编写的库移植到Java.代码处理d维点的大小为n的列表,需要计算标量产品等.我想让我的代码独立于点的存储格式,并为此引入了一个接口,

public interface PointSetAccessor
{
  float coord(int p, int c);
}
Run Code Online (Sandbox Code Playgroud)

允许我获得Ç个坐标(0≤ ç < d的的)p个点(0≤ p < Ñ).

问题:由于代码必须是非常快,我想知道是否这会减慢性能,与此相反的是直访问模式等points[p][c],其中,points是的阵列Ñ阵列,其中的每一个保持d点坐标.

令人惊讶的是,情况恰恰相反:代码(见下文)通过a的"间接"访问速度提高20%PointSetAccessor.(我用这个来衡量time java -server -XX:+AggressiveOpts -cp bin Speedo,前者为14s,后者为11s.)

问题:知道为什么会这样吗?好像Hotspot决定更积极地进行优化,或者在后一版本中有更大的自由度?

代码(计算无意义):

public class Speedo
{
  public interface PointSetAccessor
  {
    float coord(int p, int c);
  }

  public static final class ArrayPointSetAccessor …
Run Code Online (Sandbox Code Playgroud)

java performance jvm-hotspot

0
推荐指数
1
解决办法
193
查看次数

为什么HotSpot需要注册分配?

这是我读过的有关JVM的内容.HotSpot基于堆栈,Dalvik是基于寄存器的.如果HotSpot是基于堆栈的,那么一旦我们将代码重新表示为块,为什么我们需要完成寄存器分配?

另外,llvm在哪里适合这个?我读到我们可以使用llvm核心和后端来获取java源代码.HotSpot是否使用LLVM?

java llvm jvm-hotspot

0
推荐指数
1
解决办法
238
查看次数

HotSpot JIT,死代码消除和副作用?

HotSpot可以执行JIT优化以删除死代码,使代码更快更小.

它是如何知道它正在删除的代码没有副作用,或者它是否调用本机代码; 比方说,通过HotSpot内在如System.nanoTime()?它是否避免调用方法并依赖内联来知道表达式是否具有副作用,还是仅用于消除if案例?

jvm jvm-hotspot

0
推荐指数
1
解决办法
213
查看次数