首页 > TAG信息列表 > jvm-hotspot

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

假设我有一个非常紧密的内部循环,每个循环都访问和变异一个簿记对象,该对象存储有关该算法的一些简单数据并具有用于操纵该算法的简单逻辑 簿记对象是private和final,其所有方法都是private,final和@inline.这是一个示例(使用Scala语法): object Frobnicate { private class Data

java-GraalVM和Jvm-Hotspot之间的区别

有人可以解释GraalVM和Jvm-Hotspot之间的区别,以及GraalVM与OpenJDK的HotSpot有何关系.解决方法:在这种情况下,您可以将GraalVM视为经过修改/改进的HotSpot JVM [非常宽松:OpenJDK的HotSpot Graal JIT编译器(从HotSpot取代了它)具有运行其他语言(JS,Ruby,R,Python等)的能力. AOT编译

java-SIGSTOP和SIGTSTP会损坏JVM吗?

在Linux中,可以使用两种不同的信号来暂停进程,即SIGSTOP和SIGTSTP. HotSpot虚拟机,SIGSTOP和SIGTSTP because is not handled by HotSpot均无法通过HotSpot虚拟机进行处理.我想知道发送这两个信号是否安全,或者如果不安全,将影响JVM的哪一部分(例如垃圾收集器).请注意,我并不关心在

java-启用了JVM Hotspot上的PrintAssembly选项,但未显示任何程序集跟踪

我正在使用Intel i386,Ubuntu14.$java -version显示的OpenJDK版本信息是 java version "1.7.0_65" OpenJDK Runtime Environment (IcedTea 2.5.2) (7u65-2.5.2-3~14.04) OpenJDK Server VM (build 24.65-b04, mixed mode) 如前所述,我已将here二进制文件hsdis-i386.so复制到以下

java-如何关闭OSR编译

我想关闭OSR编译,并查看C1完成的标准JIT编译的结果.我已使用-XX:TieredStopAtLevel = 1将编译限制为C1,但是我找不到有关如何关闭OSR编译的任何信息.可能吗?解决方法: -XX:-UseOnStackReplacement 为此有一个命令行参数.

在哪里可以找到MemoryConsumer.java程序来测试内存消耗?

在哪里可以找到MemoryConsumer.java程序来测试内存消耗?我知道这样的事情已经存在,因为我通过Google看到对这些事情的引用.例如,该Oracle网站引用了“ ConsumeHeap.java”,但我不知道在哪里可以找到该源代码. hotspot 1.6 options 有谁知道在哪里找到或如何创造这样的东西?解决方法:

没有添加本机代码的Java致命错误SIGSEGV

我从Java编译器收到一条我不明白的错误消息.我在OSX 10.6,10.9和Ubuntu 14.04上使用Java 6和7测试了我的代码.当我使用Eclipse调试器或解释器(使用-Xint选项)运行时,一切运行正常.否则,我收到以下消息: Java 1.6: Invalid memory access of location 0x8 rip=0x1024e9660 Java 1.7:

禁用特定方法/类的Java JIT?

我在Java应用程序中遇到问题,JIT破坏了代码.如果我禁用JIT,一切正常,但运行速度慢10-20倍. 有没有办法为特定方法或类禁用JIT? 编辑: 我正在使用Ubuntu 10.10,获得相同的结果: OpenJDK Runtime Environment (IcedTea6 1.9) (6b20-1.9-0ubuntu1) OpenJDK 64-Bit Server VM (build 17.0

java – -XX:-PrintGC和XX:-PrintGCDetails标志做什么?

我发现JVM标志为here.是否有更详细的解释他们到底做了什么?解决方法:设置此标志会将JVM所做的所有垃圾收集写入日志文件(或stdout,但它不太有用),这些可以通过诸如here所述的工具进行分析.使用此信息,您可以微调您的垃圾收集配置.

java – JRE 32位vs 64位

我一直在使用Java一段时间,而我设置新开发机器的典型仪式需要从Oracle网站下载和安装最新JDK的规范. 这引发了一个不寻常的问题,如果我使用32位或64位JRE捆绑包有什么关系吗? 回过头来看,我之前已经安装了两个版本,而且我的普通工具链很快就插入了(Eclipse).在我的日常编程中,我不记

JavaLaunchHelper类在… libinstrument.dylib中实现.将使用两者之一.哪一个未定义

我在MacOS X上升级到最新的Java 7u40,并在使用Eclipse启动我的应用程序时开始在控制台上收到以下消息.该应用程序工作正常,但我想找出问题的原因,并希望解决它. objc[10012]: Class JavaLaunchHelper is implemented in both /Library/Java/JavaVirtualMachines/jdk1.7.0_40.jdk/C

java – 客户端/服务器JVM选项的区别

参见英文答案 > Real differences between “java -server” and “java -client”?                                    11个 在Java Hotspot编译器中,使用-client初始化Java而不是-server之间的区别是什么,以及每个的利弊/警告是什么?解决方

如何在java中解释-XX:CompileCommand =“print Class :: Method”的输出

以下是我运行以下命令时得到的输出的摘录(40只是斐波那契程序的一个参数): java -XX:UnlockDiagnosticVMOptions -XX:CompileCommand =“print Fibonacci :: fibonacci”Fibonacci 40 有人可以解释每个数据的含义(我认为它意味着字节数,例如,主代码需要288个字节).此外,各种类别意味着

c – 使用gdb调试JDK9 Hotspot,导致eclipse / Ubuntu终端出现SIGSEGV分段错误

我正在尝试调试JDK9. 我想跟踪源代码并查看JDK / Hotspot代码的控制流程. 我使用gdb和Eclipse但是有一个问题SIGSEGV Segmentation故障. 我从JDK官方文档中按照Buildme.md配置JDK9, bash ./configure --with-debug-level=slowdebug --with-target-bits=64 --disable-warnings-as-e

Java Class.getSimpleName()和.getName()在Cacao与Sun Java上的行为不同

有没有人知道为什么会发生这种情况? 这是来自Java DBus绑定的一些修改行(2.6) // don't let people import things which don't have a // valid D-Bus interface name System.out.println("type.getName: " + type.getName() + " type.getSimpleName: " + type.ge

java – 是否可以在JVM中监视(检测,跟踪等)基本类型的I / O活动?

是否有任何API或库允许用户创建某种关于在JVM实例中运行的程序执行的操作的报告?我的意思是类似JVM /系统调用拦截,根据活动类型进一步分类,例如,DiskWrite,DiskRead,NetworkWrite,NetworkRead,Wait(真的是一个活动?)等等.检测密集CPU使用等的时段也是有用的.如果需要一定量的编写本

java – 快速抛出异常的Hotspot JIT优化会导致模糊的结果吗?

This question处理JIT编译器确定它不再生成堆栈跟踪的情况,如果它认为它先前已经执行了一定次数.我知道这被称为“快速投掷”或“预分配”例外. 一般来说,如果遇到这样一个预先分配的异常,那么在JIT认为值得编译之前,缺少的堆栈跟踪应该在JVM生命的某个早期点至少找到一次. 我的问

Java HotSpot中共享内存文件空间不足的影响是什么?

我已经运行了很多实验(几个月的cpu时间),在我的日志中有以下警告: Java HotSpot(TM) 64-Bit Server VM warning: Insufficient space for shared memory file 实验终止没有错误,但现在我想知道我可能,也可能不会从他们那里评估.所以: Java HotSpot中共享内存文件空间不足的影响

java – 这个演示中的JVM内存分配和解除分配解释了什么?

我有一个简单的演示来检查JVM内存分配和释放的详细信息. Java版本 $java -version java version "1.8.0_201" Java(TM) SE Runtime Environment (build 1.8.0_201-b09) Java HotSpot(TM) 64-Bit Server VM (build 25.201-b09, mixed mode) 演示 /** * VM Options: -Xms20M -Xmx

调试java混淆代码

我们将模糊我们的项目,但不想失去远程调试和hotswapping的能力. 可能吗?哪些工具可以处理这个?我对简单的混淆感到满意 – 只需重命名类/方法/变量. [已编辑]我们正在使用Intellij IDEA,但无法为此任务找到任何插件.解决方法:我们有同样的需求(简单的混淆,需要稍后调试) 我们使用ProG

linux – Java运行时环境中的致命SIGSEGV错误

在linux上运行java应用程序时收到以下错误,导致jvm崩溃: # # A fatal error has been detected by the Java Runtime Environment: # # SIGSEGV (0xb) at pc=0x000000000000003a, pid=7629, tid=140107993413376 # # JRE version: 6.0_24-b07 # Java VM: Java HotSpot(TM) 64-Bit

打印Java热点JIT汇编代码

我在Java中编写了一个非常愚蠢的测试类: public class Vector3 { public double x,y,z ; public Vector3(double x, double y, double z) { this.x=x ; this.y=y ; this.z=z ; } public Vector3 subst(Vector3 v) { return new Vector3(x-v.x,y-v.y,z-v

javac或Hotspot会自动添加’final’作为不变变量的优化吗?

共识似乎是将成员变量标记为final有一个性能优势,因为它们永远不需要从主内存重新加载.我的问题是,当变量无法改变时,javac或Hotspot会自动为我做这件事.例如,javac将在下面的这堂课中制作’x’决赛…… public class MyClass { private String x; MyClass(String x) {