问题标签 [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 投票
1 回答
523 浏览

java - 有没有办法让netbeans使用热点服务器vm

有人知道netbeans是否默认使用热点服务器vm?我试图弄清楚这是否是一个选项。谢谢!

-罗杰-

0 投票
1 回答
152 浏览

java - 为什么使用热点服务器 JVM 运行此代码段实际上需要更长的时间?

这是代码片段:

https://gist.github.com/987751

对我来说,它有时像:

所以第一个问题是“为什么它比客户端 VM 慢”

另外我猜下一个问题是“是否有可能为方法调用方式获得超 0ms 的加速(它几乎是相同的代码)?”

我还认为,尽管有这种奇怪之处,但热点通常运行得更快,即使有匿名类等?

谢谢!

-罗杰-

0 投票
1 回答
664 浏览

java - JVM 会内联对象的实例变量和方法吗?

假设我有一个非常紧凑的内部循环,它的每次迭代都会访问和改变一个单一的簿记对象,该对象存储一些关于算法的简单数据,并且具有用于操作它的简单逻辑

bookkeeping 对象是 private 和 final 的,它的所有方法都是 private、final 和 @inline。这是一个示例(在 Scala 语法中):

JVM 是否会将整个 DataRemaining 对象内联到Frobnicate.frobnicate? 也就是说,它会将startandend视为局部变量并将 nextChunk 代码直接内联到frobnicate?

0 投票
1 回答
1062 浏览

java - Hotspot 的 scavenge GC 停止运行,只留下 mark-sweep GC

我在某个程序中使用 Hotspot 的 GC 遇到了一些奇怪的事情。有时,似乎清除 GC 几乎就死了,每次 Eden 空间填满时,只剩下标记-清除 GC 运行。不用说,这对性能来说是可怕的。我还没有设法弄清楚这个问题发生的条件。

现在看看具有这种行为的 JVM,老一代是 170 MB(已使用和最大),并且永远不会在集合中增长或缩小,伊甸园一代是 85 MB,Survivor 空间从未使用过(我猜是与 scavenge GC 未运行一致),分配的总堆大小为 256 MB(显然,匹配 Old+Eden)。

关于可能导致这种情况的任何线索?

0 投票
3 回答
2643 浏览

java - Java 优化:(Hotspot/Dalvik) final 方法返回常量的优化?

谁能告诉我 Hotspot 或 Dalvik 是否足够聪明,可以内联调用返回常量(静态最终)int 值的最终方法?理想情况下,方法调用将被常量替换。这可能是在类加载时或通过 JIT。

这对我正在处理的一些代码的设计有影响。

0 投票
2 回答
1086 浏览

java - 为什么在这种情况下 Java 比 C 更快(和更慢)?

一些人刚开始通过阅读 K&R 学习 C,并在第一页上打印了它的华氏到摄氏度的转换循环:

他被告知 Java 速度很慢。所以,告诉他 Java 现在非常有竞争力,但在这种简单的情况下,C 可能会更快。想证明他,基本上添加了“System.out”。在 printf() 前面。

它慢了 10 倍以上。太多了。我很困惑。想到了String对象的创建,GC,-server,yada,yada,yada。

当我发现几乎 100% 的时间实际上都花在了 printf() 上时,我更加困惑了(PrintSteam.write()输出通过管道传输到 /dev/null)。

经过一番摆弄,我想出了这个(现在不做 %f 的四舍五入):

所以,这使用了 NIO。它在两台经过测试的机器上优于gcc -O2。

问题:

  • 为什么从 C 到 Java(即PrintStream)的文字转录如此缓慢?
  • (为什么评论out.printf()这么慢[也许性能会随着时间的推移而下降]?)
  • 最后:为什么我的解决方案比 C 更快(包括 JVM 启动时间)?
0 投票
3 回答
7329 浏览

java - Jvm JIT 和 Hotspot - 有什么区别

我听说过使用这些术语,但我似乎无法找到它们在 Java 框架中的组合位置的顶级视图。我知道 JIT 是一种编译机制,但它是 JVM 的一部分吗?什么是热点?它是某种新型虚拟机吗?

0 投票
1 回答
431 浏览

java - 我在哪里可以找到有关 Sun JVM 内部工作原理的信息?

作为开发人员,我想知道调用虚拟方法与接口方法的成本是多少。现在,我知道为什么invokeinterface可以比 慢invokevirtual,但我想知道 Sun 是否在他们发布的 JVM 的最新版本中采用了新的机制来改进invokeinterface. 我怎样才能找到这样的信息?

0 投票
1 回答
3715 浏览

java - 热点默认最大堆大小

根据以下文档http://www.oracle.com/technetwork/java/javase/gc-tuning-6-140523.html#par_gc.ergonomics.default_size使用公式 MIN(内存/4、1GB)。从公式中可以看出,但文档中仍然注明“默认的最大堆大小不会超过 1GB,无论机器上安装了多少内存”。为了验证我是否编写了以下程序

我在一个有 16Gb RAM 的盒子上执行了这个程序。

2GB 数组是在老年代分配的。MaxHeapSize 为 4GB,是系统内存的 1/4。为什么 JVM 为堆保留 4GB?

0 投票
4 回答
102671 浏览

java - ReservedCodeCacheSize 和 InitialCodeCacheSize 是什么?

有人可以解释一下JVM选项是什么吗ReservedCodeCacheSizeInitialCodeCacheSize具体来说,我何时/为什么要更改它?我如何确定合适的尺寸是多少?

这就是文档所说的:

-XX:ReservedCodeCacheSize=32m 保留代码缓存大小(以字节为单位)- 最大代码缓存大小。[Solaris 64 位、amd64 和 -server x86:2048m;在 1.5.0_06 及更早版本中,Solaris 64 位和 and64:1024m。]