问题标签 [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.
java - 有没有办法让netbeans使用热点服务器vm
有人知道netbeans是否默认使用热点服务器vm?我试图弄清楚这是否是一个选项。谢谢!
-罗杰-
java - 为什么使用热点服务器 JVM 运行此代码段实际上需要更长的时间?
这是代码片段:
https://gist.github.com/987751
对我来说,它有时像:
所以第一个问题是“为什么它比客户端 VM 慢”
另外我猜下一个问题是“是否有可能为方法调用方式获得超 0ms 的加速(它几乎是相同的代码)?”
我还认为,尽管有这种奇怪之处,但热点通常运行得更快,即使有匿名类等?
谢谢!
-罗杰-
java - JVM 会内联对象的实例变量和方法吗?
假设我有一个非常紧凑的内部循环,它的每次迭代都会访问和改变一个单一的簿记对象,该对象存储一些关于算法的简单数据,并且具有用于操作它的简单逻辑
bookkeeping 对象是 private 和 final 的,它的所有方法都是 private、final 和 @inline。这是一个示例(在 Scala 语法中):
JVM 是否会将整个 DataRemaining 对象内联到Frobnicate.frobnicate
? 也就是说,它会将start
andend
视为局部变量并将 nextChunk 代码直接内联到frobnicate
?
java - Hotspot 的 scavenge GC 停止运行,只留下 mark-sweep GC
我在某个程序中使用 Hotspot 的 GC 遇到了一些奇怪的事情。有时,似乎清除 GC 几乎就死了,每次 Eden 空间填满时,只剩下标记-清除 GC 运行。不用说,这对性能来说是可怕的。我还没有设法弄清楚这个问题发生的条件。
现在看看具有这种行为的 JVM,老一代是 170 MB(已使用和最大),并且永远不会在集合中增长或缩小,伊甸园一代是 85 MB,Survivor 空间从未使用过(我猜是与 scavenge GC 未运行一致),分配的总堆大小为 256 MB(显然,匹配 Old+Eden)。
关于可能导致这种情况的任何线索?
java - Java 优化:(Hotspot/Dalvik) final 方法返回常量的优化?
谁能告诉我 Hotspot 或 Dalvik 是否足够聪明,可以内联调用返回常量(静态最终)int 值的最终方法?理想情况下,方法调用将被常量替换。这可能是在类加载时或通过 JIT。
这对我正在处理的一些代码的设计有影响。
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 启动时间)?
java - Jvm JIT 和 Hotspot - 有什么区别
我听说过使用这些术语,但我似乎无法找到它们在 Java 框架中的组合位置的顶级视图。我知道 JIT 是一种编译机制,但它是 JVM 的一部分吗?什么是热点?它是某种新型虚拟机吗?
java - 我在哪里可以找到有关 Sun JVM 内部工作原理的信息?
作为开发人员,我想知道调用虚拟方法与接口方法的成本是多少。现在,我知道为什么invokeinterface
可以比 慢invokevirtual
,但我想知道 Sun 是否在他们发布的 JVM 的最新版本中采用了新的机制来改进invokeinterface
. 我怎样才能找到这样的信息?
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?
java - ReservedCodeCacheSize 和 InitialCodeCacheSize 是什么?
有人可以解释一下JVM选项是什么吗ReservedCodeCacheSize
?InitialCodeCacheSize
具体来说,我何时/为什么要更改它?我如何确定合适的尺寸是多少?
这就是文档所说的:
-XX:ReservedCodeCacheSize=32m 保留代码缓存大小(以字节为单位)- 最大代码缓存大小。[Solaris 64 位、amd64 和 -server x86:2048m;在 1.5.0_06 及更早版本中,Solaris 64 位和 and64:1024m。]