jvm-hotspot相关内容

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

我从一些文档中读到,Hotspot VM利用名为Oop Maps的数据结构来管理VM中的所有OOP。我的问题是,这个Oop Map数据结构何时生成?在编译时还是运行时?任何有关此问题的进一步详细文件都将受到欢迎。谢谢你们。 解决方案 OopMap是一个记录对象引用(OOP)位于Java堆栈中的结构。它的主要目的是在Java堆栈中找到GC根目录,并在堆中移动对象时更新引用。 有三种Oo ..
发布时间:2018-11-29 19:14:01 Java开发

UseCompressedOops JVM标志做什么以及何时应该使用它?

热点JVM标志 -XX:+ UseCompressedOops 做什么以及何时应该使用它?在64位Java实例上使用它时(不使用它),我会看到哪种性能和内存使用差异? 解决方案 去年大多数HotSpot JVM默认启用它。此选项允许在64位JVM中引用为32位,并且访问接近32 GB的堆。 (超过32位指针可以)(你也可以有近乎无限的堆内存)。这可以节省大量内存并可能提高性能。 如果 ..
发布时间:2018-11-28 20:47:48 Java开发

-XX:带或不带-XX的MaxPermSize:PermSize

我们遇到了 Java.lang.OutOfMemoryError:PermGen space 错误并查看了tomcat JVM参数,而不是 -Xms 和 -Xmx 参数我们还指定 -XX:MaxPermSize = 128m 。经过一些分析后,我偶尔可以看到在PermGen空间发生垃圾收集,使其无法正常运行。 我的问题是:除了增加 -XX:MaxPermSize 如果我同时指定 -XX:Pe ..
发布时间:2018-11-28 00:23:51 Java开发

什么是ReservedCodeCacheSize和InitialCodeCacheSize?

有人可以解释一下JVM选项 ReservedCodeCacheSize 和 InitialCodeCacheSize 是什么?特别是何时/为什么我要改变它?我如何确定合适的尺寸? 这就是文档所说的: -XX:ReservedCodeCacheSize = 32m保留代码高速缓存大小(以字节为单位) - 最大代码高速缓存大小。 [Solaris 64位,amd64和-server x86 ..
发布时间:2018-11-27 22:17:46 Java开发

分析gc日志

我正在使用 -XX:+ PrintGCApplicationStoppedTime 和 -XX:+ PrintGCApplicationConcurrentTime 选项来启用gc日志记录。 但是发现只有在4 0r 5打印 PrintGCApplicationStoppedTime 后才能通过 -XX:+ PrintGCDetails 命令! 按照定义 PrintGCApplicati ..
发布时间:2018-11-27 21:52:22 Java开发

JVM HotSpot上的Java Exceptions计数器

我想知道是否可以在不更改应用程序代码的情况下记录JVM级别发生的每个异常?每个例外,我的意思是捕获和未捕获的异常...我想稍后分析这些日志并按异常类型(类)对它们进行分组,并简单地按类型计算异常。我正在使用HotSpot;) 也许更聪明的为什么这样做?例如,任何免费的探查器(YourKit有它,但它不是免费的)?我认为JRockit在管理控制台中有异常计数器,但是没有看到类似的HotSpot ..
发布时间:2018-11-27 21:33:13 Java开发

JVM如何决定JIT编译方法(将方法分类为“热”)?

我已经使用 -XX:+ PrintCompilation ,我知道JIT编译器的基本技术以及使用JIT编译的原因。 然而,我仍然没有发现JVM如何决定JIT编译方法,即“正确的时间来到JIT编译方法”。 我是否正确地假设每个方法都开始被解释,只要它没有被归类为“热方法”,它就不会被编译?我有一些东西在脑后,我读到一个方法被认为是“热”,当它被执行至少10.000次(解释方法10.000 ..
发布时间:2018-11-27 11:16:03 Java开发

“java -server”之间的真正区别和“java -client”?

“java -server”和“java -client”之间是否有任何实际的区别?我在Sun的网站上找到的只是一个模糊的“ - 服务器启动速度较慢但应该运行得更快”。有什么真正的区别? (目前使用JDK 1.6.0_07。) 解决方案 这实际上与 HotSpot 和默认值相关联选项值( Java HotSpot VM选项)在客户端和服务器配置之间有所不同。 来自第2章( Java ..
发布时间:2018-11-26 12:21:14 Java开发

如何在Java中编写正确的微基准测试?

你如何在Java中编写(并运行)正确的微基准? 我在这里寻找代码示例和注释,说明要考虑的各种事项。 示例:基准测量应该测量时间/迭代或迭代/时间,以及为什么? 相关: 秒表基准测试是否可以接受? 解决方案 关于从Java HotSpot创建者编写微基准的提示: 规则0:阅读有关JVM和微基准测试的着名论文。一个好的方法是 Brian Goetz,2005 。微观基准 ..
发布时间:2018-11-26 11:53:10 Java开发

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

目前,我有一个已部署的可执行jar文件,可在崩溃时创建大型(7+ Gb)minidump文件。我想有一个文本表示导致崩溃的原因,而不是JVM状态的二进制文件。我已尝试使用此CodeRanch帖子中的信息和我在Java文档中找到的文档 似乎没有帮助。 我还引用了这个问题但是没有确定的答案。 这是否有一种典型的方法我不知道的? 解决方案 我找到了一个似乎可以做我想要的命令行选项。使 ..
发布时间:2018-11-19 13:38:00 Java开发

我如何知道Java对象是否在堆转储的使用期限或eden空间中

我有一个Hotspot JVM堆转储,我试图找出一个对象是否在tenure空间,eden空间或幸存空间中,但我不能。 我不认为你可以。从这个论坛帖子, 对不起,坏消息,堆转储既不包含有关对象所在的 空间的信息 通过此页面查看java堆转储的内容似乎确认堆转储不包含生成信息, HEAP DUMP BEGIN(39793个对象,2628264字节)Wed Oct 4 13: ..
发布时间:2018-04-19 18:24:36 Java开发

为什么Java G1 gc花费这么多时间扫描RS?

我目前正在评估G1垃圾回收器以及它如何在我们的应用程序中执行。看着gc-log,我注意到很多收藏都有很长的“Scan RS”阶段: 7968.869:[GC (ms):4030.4 4034.1 4032.0 4032.0 平均:4032.1对象拷贝数(ms):6038.5 6033.3 6036.7 6037.1 平均值:6036.4,最小值:6033.3,最大值:6038.5,差值 ..
发布时间:2018-04-19 18:14:07 其他开发

什么导致JVM执行主要垃圾回收?

我有一个Java应用程序,它在不同的环境中显示不同的GC行为。在一个环境中,堆使用图是一个缓慢的锯齿,每10个小时左右有一个主要的GC,只有当堆大于90%满时。在另一个环境中,JVM每小时在这个点上执行主要的GC(在这些时间内堆一般在10%到30%之间)。 我的问题是,什么是什么原因导致JVM决定做一个重要的GC? 显然它会在堆满时收集,但还有其他一些原因,我猜测是与我的应用程序中的每 ..
发布时间:2018-04-19 18:11:29 Java开发

垃圾收集中的'伊甸园空间'的名称来源

在垃圾收集术语中,它为什么叫做'Eden Space'? 就像那样。我仍然熟悉这个术语,我不明白为什么它有这样的名字。 解决方案 创建。他们的生活都很开心,但最终他们被一个小天使赶到了年轻人后来的老一代。 他们永远不会回到伊甸园空间,他们必须呆在粗暴的世界里,直到Grim Collector为他们而来。然而,与原来的伊甸园不同,它有可能死在那里。那么,我想所有的比喻都会在更仔细的审查 ..
发布时间:2018-04-19 18:10:43 Java开发

为什么当20%的堆仍然空闲时,我会获得OutOfMemory?

我已将最大堆设置为8 GB。当我的程序开始使用大约6.4 GB(在VisualVM中报告)时,垃圾收集器开始占用大部分CPU,并且在进行〜100 MB分配时,程序与OutOfMemory崩溃。我在Windows上使用Oracle Java 1.7.0_21。 我的问题是,是否有GC选项可以帮助解决这个问题。我不会传递任何东西,除了-Xmx8g。 我的猜测是堆越来越分散,但是不应该紧凑到 ..
发布时间:2018-04-19 18:06:31 Java开发

NewRatio参数不适用于CMS垃圾收集器

我转换到CMS收集器为我的应用程序和应用程序的吞吐量减少了一半。从GC日志中,我发现小GC发生的频率很高(小于code> 10每秒)。我已经分配了一个堆大小 4G 。 JVM默认使用非常小的尺寸(小于 40MB )。我想通过增加年轻gen的大小来尝试CMS。你能指出我对这个JVM参数吗? 我尝试了-XX:NewRatio,但JVM忽略了这个参数,并且年轻的gen size没有变化 我的Ja ..
发布时间:2018-04-19 17:54:17 Java开发

分析gc日志

使用XX:+ PrintGCApplicationStoppedTime -XX:+ PrintGCApplicationConcurrentTime添加到我的gc日志中! 但是发现只有在打印完4G或5G PrintGCApplicationStoppedTime后,通过-XX打印:+ PrintGCDetails命令! 根据定义PrintGCApplicationStoppedTim ..
发布时间:2018-04-19 17:42:20 其他开发

JavaLaunchHelper类在... libinstrument.dylib中实现。其中一个将被使用。哪一个是未定义的

我升级到MacOS X上的最新的Java 7 u40,并在eclipse中从lanclipse应用程序开始获取以下输出到我的控制台上。推出的应用程序工作正常,但我想知道导致此问题的原因及其修复。 objc [10012]:JavaLaunchHelper类在/Library/Java/JavaVirtualMachines/jdk1.7.0_40.jdk/Contents中实现/ Home ..
发布时间:2017-07-26 20:53:52 Java开发