标签: jvm-hotspot

Hotspot7 hsdis PrintAssembly Intel语法

每次我使用-XX:+PrintAssemblyHotspot时都会让我烦恼,并且必须阅读可怕的AT&T语法.

有没有办法告诉它使用英特尔语法?

java assembly jvm-hotspot

15
推荐指数
1
解决办法
2041
查看次数

如何在Windows上使用Java Hotspot JVM禁用minidump(mdmp)文件生成

目前,我有一个已部署的可执行jar文件,可在崩溃时创建大型(7+ Gb)minidump文件.我想有一个文本表示导致崩溃的原因,而不是JVM状态的二进制文件.我已经尝试使用此CodeRanch帖子中的信息,我在Java文档中找到的文档似乎没有帮助.

我也引用了这个问题,但没有明确的答案.

是否有一种我不知道的典型方式?

java jar executable-jar jvm-hotspot

15
推荐指数
1
解决办法
6363
查看次数

如何确定Hotspot JVM决定再次重新编译JIT:ed代码的原因?

我正在尝试为延迟敏感的Java应用程序编写一个预热例程,以便优化前几个可能因动态类加载和JIT(主要是)而减慢的事务.

我面临的问题是,即使我的预热代码加载所有类并通过多次调用它们(至少100次-XX:CompileThreshold)来练习它们,之后当实际用户登录这些相同的函数时仍然标记为"非参赛者"并再次重新编译,这会造成延迟.

JVM标志如下(我只添加了-XX:+ PrintCompilation -verbose:class tp troubleshoot,其他是遗留的):

-Xms5g -Xmx5g -server -XX:+ AggressiveHeap -XX:+ UseFastAccessorMethods -XX:+ PrintGCDetails -XX:CompileThreshold = 100 -XX:-CITime -XX:-PrintGC -XX:-PrintGCTimeStamps -XX:+ PrintCompilation -verbose:类

#Warmup happens here
  12893 2351       my.test.application.hotSpot (355 bytes)
#Real user logs on here
 149755 2351      made not entrant  my.test.application.hotSpot (355 bytes)
 151913 2837       my.test.application.hotSpot (355 bytes)
 152079 2351      made zombie  my.test.application.hotSpot (355 bytes)
Run Code Online (Sandbox Code Playgroud)

在预热之后没有发生类加载(我之前可以看到类加载,因此标志正在工作).

看起来该函数获得了一个新的ID(2351 vs 2837),这意味着它被JVM视为"不同".

我如何确定JVM决定重新编译此函数的原因?

我想这归结为我如何确定ID改变的原因?标准是什么?

我尝试尽可能多地标记尽可能多的方法和类,但无济于事.

这是JRE 1.6.0_45-b06.

有关如何排除故障或获取更多信息的任何提示!:)

java jit jvm-hotspot jvm-arguments

15
推荐指数
1
解决办法
671
查看次数

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
Run Code Online (Sandbox Code Playgroud)

Java 1.7:

#
# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGSEGV (0xb) at pc=0x000000010f7a8262, pid=20344, tid=18179
#
# JRE version: Java(TM) SE Runtime Environment (7.0_60-b19) (build 1.7.0_60-b19)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (24.60-b09 mixed mode bsd-amd64 compressed oops)
# Problematic frame:
# V  [libjvm.dylib+0x3a8262]  PhaseIdealLoop::idom_no_update(Node*) const+0x12
#
# Failed to write core dump. Core dumps have been …
Run Code Online (Sandbox Code Playgroud)

java jvm-hotspot segmentation-fault jvm-crash

15
推荐指数
1
解决办法
1万
查看次数

了解Hotspot JVM进程的内部碎片属性

对于堆上和堆外分配.在堆上 - 在三个主要垃圾收集器的上下文中:CMS,Parallel Old和G1.

我所知道的(或者我认为我知道)到目前为止:

  • 所有对象(堆上)分配都向上舍入到8个字节的边界(或更大的2的幂,由...配置)-XX:ObjectAlignmentInBytes.
  • G1
    • 对于小于区域大小的堆上分配(1到32 MB,可能在堆大小/2048 周围),没有内部碎片,因为没有必要,因为分配器永远不会"填充漏洞".
    • 对于区域大小越大的分配,它将分配到区域大小.I. e.分配区域大小+ 1字节是非常不吉利的,它浪费了近50%的内存.
  • 对于CMS,我发现的唯一相关信息是

    自然旧的空间PLAB模仿索引自由列表空间的结构.每个线程预先分配一定数量的每个大小的块,低于257个堆字(从全局空间分配的大块).

    来自http://blog.ragozin.info/2011/11/java-gc-hotspots-cms-promotion-buffers.html.据我所知,提到"全球空间"是主要的旧空间.

问题:

  • 以上陈述是否正确?
  • CMS中主要旧空间的碎片属性是什么?分配超过"257堆字"怎么样?
  • 如何使用Parallel Old GC管理旧空间?
  • Hotspot JVM是否使用系统内存分配器进行堆外分配,还是使用特定分配器重新管理它?

UPD.讨论主题:https://groups.google.com/forum/#!topic/mechanical-sympathy/ A- RImwuiFZE

java memory-management jvm-hotspot heap-fragmentation memory-fragmentation

15
推荐指数
1
解决办法
863
查看次数

OpenJDK与Java HotspotVM

OpenJDK VM和Oracle Hotspot VM还有两种不同的JVM吗?

我似乎无法找到任何有关OpenJDK VM的官方文档.即使在OpenJDK主页上也有一个开发HotSpot VM的HotSpot Group.

HotSpot组由参与HotSpot虚拟机的设计,实现和维护的开发人员组成

但是如果我在我的Windows机器上检查java -version它会打印出来

Java HotSpot(TM)64位服务器VM

但在我的Ubuntu VPS上

OpenJDK 64位服务器VM

如果这两个是不同的VM,它们之间的主要区别是什么?他们有不同的运行时标志集吗?

java openjdk jvm jvm-hotspot hotspot

15
推荐指数
2
解决办法
7054
查看次数

Java和.Net之间的JIT有什么不同

我知道Microsoft .NET使用CLR作为JIT编译器,而Java具有Hotspot.它们之间有什么区别?

.net java clr jit jvm-hotspot

14
推荐指数
1
解决办法
2842
查看次数

Java中盒装基元的存储成本是多少?

如何大,以字节为单位,是一个盒装的原始状java.lang.Integerjava.lang.CharacterJava中?

An int是4个字节,典型的指针也是4个字节(如果没有被JVM压缩).那么整数(没有缓存)的成本是4 bytes + 4 bytes = 8 bytes多少?盒子对象中是否还有任何隐藏字段或者对象产生的额外开销(即,我不知道对象的一般成本?).

我对缓存问题不感兴趣.我知道JVM会缓存某个范围内的整数.

可以重新解释这个问题:用于盒装值与原始值的内存量相乘的最大因子是多少?

编辑:我明白存在JVM的多个实现.典型的32位HotSpot实现的典型成本是多少?

java memory primitive jvm-hotspot

14
推荐指数
1
解决办法
2959
查看次数

存储在JVM中的Object的实例变量在哪里?

Java中的对象的实例变量是存储在JVM的堆栈或方法区域中的吗?

另外,我们为多个线程设置了不同的实例变量吗?

如果它存储在方法区域中,实例变量与静态变量存储的不同之处是什么?

java jvm heap-memory jvm-hotspot

14
推荐指数
3
解决办法
3万
查看次数

Oop Maps在Hotspot VM中的含义是什么?

我从一些文档中读到,Hotspot VM利用名为Oop Maps的数据结构来管理VM中的所有OOP.我的问题是,这个Oop Map数据结构何时生成?在编译时还是运行时?任何有关此问题的进一步详细文件都将受到欢迎.感谢你们.

java jvm jvm-hotspot

14
推荐指数
1
解决办法
2002
查看次数