jvm-hotspot相关内容

动态字节码检测失败,没有任何错误

目标 我正在使用JVMTI代理进行动态字节码检测.我必须检测那些“热"的方法,即调用JIT编译器的方法.为此,我听了CompiledLoadEvent并在其回调函数中调用RetransformClasses.反过来,这会在包含"hot"函数的类上调用ClassFileLoadHook,然后开始实际检测. 问题处所 目前,我正在检测类以产生一些线程.我也听线程启动并在我的代理中打印 ..

如何用没有进一步调用的JVMTI代理重新转换执行方法?

我正在出于各种目的在运行时检测类文件.为此,我正在使用JVMTI代理.我对一种方法进行检测的策略是调用RetransformClasses函数来调用ClassFileLoadHook.此策略适用于在插装后进行任何进一步调用的所有方法,因为实际的插装发生在随后的函数调用中,但不适用于任何在程序中没有诸如main函数之类的进一步调用的方法. 我想在执行过程中动态地检测一个方法.我需要一些过程,例 ..
发布时间:2020-06-29 18:51:55 Java开发

Java中已提交内存的确切状态

我很好奇,当从MemoryUsage类中查询值时,“已提交"内存的确切含义是什么.该类将其解释为“已承诺表示保证Java虚拟机可以使用的内存量(以字节为单位)".这是否意味着该内存正在由jvm进程使用,并且在Java进程释放之前不可供其他进程使用,或者这意味着如果Java进程尝试分配多达该数量的内存,则该Java进程将成功. ?我意识到这可能是特定于实现的,但是我只对热点感兴趣. 解决方案 ..
发布时间:2020-05-08 19:20:54 Java开发

启用了JVM标志-XX:+ UseDynamicNumberOfGCThreads -XX:+ TraceDynamicGCThreads可以看到否. GC期间的GC线程数.请解释输出日志?

我们有一个应用程序以集群模式(6个节点)运行Wildfly应用程序服务器. 当触发GC时,有时我们会看到JVM冻结16秒. 如果15秒钟内未收到心跳响应,则该应用程序对时间敏感,并且群集中的其他节点认为该节点已死(JVM在其中暂停). 因此,JVM冻结导致应用程序不稳定. 为了了解GC期间发生的情况,我们启用了热点,安全点日志,并在GC暂停时查看以下跟踪. 任何人都可以解释以下参数的含义. ..
发布时间:2020-04-25 07:38:13 Java开发

从正在运行的Java程序的内存中查找和读取特定类型的对象

我必须评估从正在运行的Java程序的内存中提取某些对象(例如java.security.PrivateKey)有多困难. 我不太喜欢这种低级内存,因此我从小型C程序开始,熟悉gdb,/proc//maps,/proc//mem和但是,切换到Java时情况发生了变化.由于使用了垃圾回收,因此使用Java分配和管理内存的方式非常不同.在C程序中,我将查看一个堆栈地址,并确定其 ..
发布时间:2020-04-25 07:36:23 Java开发

与OpenJDK相比,Oracle商业Hotspot JVM具有什么性能优势?

如该问题所述: OpenJDK与Java HotspotVM Oracle的商业Hotspot JVM本质上是OpenJDK,还有一些仅用于商业客户端的功能. 但是-这些额外的功能实际上是否仅在使用现成的硬件的情况下有助于提高单机和/或小型集群的性能?还是只与具有特定组织需求的大公司以及具有自定义硬件的大型系统有关? 我要特别问的是"Java Flight Recorder ..
发布时间:2020-04-25 07:33:56 Java开发

如果大多数方法在调用站点上都是死代码,那么Java可以内联一个大方法吗?

我知道Java HotSpot用来确定某个方法是否值得内联的标准之一是该方法的大小.一方面,这似乎是明智的:如果该方法很大,则内联会导致代码膨胀,并且该方法执行将花费很长时间,因此调用开销很小.这种逻辑的麻烦在于,在您决定内联后,很可能会发现,对于该特定的调用站点,大多数方法都是无效代码.例如,该方法可能是一个巨大的switch语句,但是大多数调用站点都使用编译时常量来调用该方法,因此实际上:内联 ..
发布时间:2020-04-25 07:27:15 Java开发

即时编译-总是存储与执行

可能重复: 为什么JVM不缓存JIT编译代码? 我了解JIT编译是使用热点机制编译为本地代码,因为它是对OS,Hardwards等的优化,因此可以非常快速地 我的问题是,为什么Java不将符合JIT要求的代码存储在文件中的某个地方,而将其用于以后的用途?这也可以减少“初始预热"时间. 请让我知道我在这里想念的东西. 要添加到我的问题: 为什么Java不将完整的代码编译为本 ..
发布时间:2020-04-25 07:26:40 Java开发

在运行时更改JVM JIT选项

是否可以在运行时更改Java JVM(JIT)的选项和/或模式?例如.更改XX:CompileThreshold,甚至在解释的代码和编译的代码之间进行切换(-Xcomp与-Xint). 我的JVM来自OpenJDK(1.6),Hotspot或Zero/Shark 解决方案 您无法在运行时更改JVM模式,但是可以在不重新启动JVM的情况下修改某些标志.只需使用JMX客户端(如Visua ..
发布时间:2020-04-25 07:26:11 Java开发

Java 8中仍然存在“方法"区域吗?

在Java 8之前,我们有5个主要的运行时数据区域: 方法区域 堆 JVM堆栈 PC寄存器 本机方法堆栈 在Java 8中,没有Perm Gen,这意味着不再有 "java.lang.OutOfMemoryError:PermGen" 这很棒,但我也读过 方法区域是Perm Gen中空间的一部分 但是我似乎找不到任何明确表明Java 8中不再存在Method区 ..
发布时间:2020-04-25 07:21:49 其他开发

在哪里下载Hotspot JVM?与Oracle的JVM不同吗?

我在Stack Overflow上阅读了一些有关JVM的文章,并想下载Hotspot JVM的二进制副本,但是我无法在 http://www.java.net . 除此之外, Oracle Oracle JVM是否适合生产网站? 解决方案 概述: 此SO问题可能会清除有关“什么是JVM,热点"的问题.和OpenJDK". 基本上: JVM 表示 Java虚拟机 ..
发布时间:2020-04-25 07:21:42 其他开发