问题标签 [jvm-hotspot]

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 投票
11 回答
253182 浏览

java - “java -server”和“java -client”之间的真正区别?

“java -server”和“java -client”之间有什么真正的实际区别吗?

我在 Sun 的网站上只能找到一个模糊的

“-server 启动速度较慢,但​​应该运行得更快”。

真正的区别是什么?(目前使用 JDK 1.6.0_07。)

0 投票
2 回答
15602 浏览

java - java中已提交内存的确切状态

我很好奇从 MemoryUsage 类中查询值时“已提交”内存的确切含义是什么。该类将其解释为“已提交表示保证可供 Java 虚拟机使用的内存量(以字节为单位)。” 这是否意味着该内存正在被 jvm 进程使用,并且在它被 java 进程释放之前不可用于其他进程,还是意味着如果 java 进程尝试分配最多该内存量,它将成功? 我意识到这可能是特定于实现的,但我只对热点感兴趣。

0 投票
1 回答
1029 浏览

java - 类.getConstantPool()

如果你从 rt.jar 库中反编译java.lang.Class类,你会注意到有一个本地方法声明:

不久前,我使用 Sun 的 .class 文件规范进行了类反编译,并且能够从每个 .class 文件中获取常量池记录。但这实际上是反编译类。

只是在 Class 类中看到这个签名很惊讶。所以我所做的是我在 Main() 方法中编写了一小段代码:

如果你反编译sun.reflect.ConstantPool类,你会注意到它有很多与类、方法、参数、声明的字段等相关的方法。

当我执行应用程序时,我得到了这个 HotSpot 异常:

为什么我不能得到任何类的ConstantPool ?考虑到getConstantPool()是本机/非公共方法这一事实,我认为 Sun 不希望我直接调用它。

0 投票
11 回答
128965 浏览

java - 如何在 Java 中编写正确的微基准测试?

您如何在 Java 中编写(和运行)正确的微基准测试?

我正在寻找一些代码示例和注释来说明要考虑的各种事情。

示例:基准测试应该测量时间/迭代还是迭代/时间,为什么?

相关:秒表基准测试是否可以接受?

0 投票
2 回答
9011 浏览

java - 如何以编程方式找出我的 PermGen 空间使用情况?

我正在尝试java.lang.OutOfMemoryError: PermGen Space在 Sun 的 Hotspot JVM 上运行时诊断错误,并且想知道我的程序在各个点使用了多少 PermGen 空间。有没有办法以编程方式找出这些信息?

0 投票
4 回答
142 浏览

java - 软件专利涵盖的操作系统项目的一个分支会发生什么情况?

我正在查看Lars Bak 的专利,当我意识到其中很多都涵盖了 Sun JVM、HotSpot 等组件时。现在 Sun 的部分堆栈是在 FLOSS 许可下发布的,这对分叉或使用这个开源软件的分支?他们没有侵犯 Sun 的专利吗?

0 投票
2 回答
497 浏览

java - 关于 Java 中的 HotSpot 优化

我在 Java 中做了一些 HotSpot 优化。但是,我现在担心与加载类有关的空间(即,类中只需要一个方法,不想加载其他方法)。我该怎么做呢?

0 投票
3 回答
460 浏览

java - Java 任务运行时

首先,我必须承认这些都是非常基本和原始的问题......我想演示 Java 中用于排序和搜索的不同算法,并为运行时获取一个值。有我无法解决的问题:

  1. 有热点编译 - 这是我需要停用的运行时优化(我猜)。

  2. 如何获取运行时的时间值(秒)?在执行之前启动计时器并在之后停止它......似乎有点原始。并且计时器对象本身会消耗运行时......我需要避免这种情况。

Java API 中有什么东西可以用来解决这些问题吗?

谢谢,克劳斯

0 投票
3 回答
8245 浏览

java - 如何理解 Java 热点错误

伙计们,当 JVM 崩溃时,它会写入错误日志 hs_err_pid.log。我想找出导致 JVM 崩溃的原因?如何理解这些日志,是否在任何地方记录了该日志的排列方式。我试图在网上搜索但无济于事:-(

指出相关的 URL 将不胜感激。谢谢。

0 投票
11 回答
5646 浏览

java - 第一次 Java 循环运行缓慢,为什么?[太阳热点 1.5,sparc]

在 Solaris SPARC 机器上对一些 Java 代码进行基准测试时,我注意到我第一次调用基准测试函数时,它的运行速度非常慢(相差 10 倍):

  • 第一 | 1 | 25295.979 毫秒
  • 第二 | 1 | 2256.990 毫秒
  • 第三| 1 | 2250.575 毫秒

为什么是这样?我怀疑 JIT 编译器,有没有办法验证这一点?

编辑:根据一些答案,我想澄清一下,这段代码是我能找到的表现这种行为的最简单的测试用例。所以我的目标不是让它快速运行,而是要了解发生了什么,这样我就可以在我的实际基准测试中避免它。

已解决: Tom Hawtin 正确地指出我的“慢”时间实际上是合理的。根据这一观察,我将调试器附加到 Java 进程。在第一个过程中,内部循环如下所示:

在以下迭代中,循环如下所示:

因此,HotSpot 从内部循环中移除了内存访问,将其加速了一个数量级。

教训:做数学!我应该自己做汤姆的计算。

基准 Java 代码: