jvm相关内容

G1 GC是否具有最大区域大小或区域最大量?

当我研究G1 GC时,我发现这篇文章: http: //www.oracle.com/technetwork/articles/java/g1gc-1984535.html 。在那篇文章中,有如下所示的内容: G1 GC是一个区域化和世代的垃圾收集器,这意味着Java对象堆(堆)被分成许多相同大小的区域。启动时,Java虚拟机(JVM)设置区域大小。根据堆大小,区域大小可以从1 MB到32 ..
发布时间:2018-04-19 18:03:57 Java开发

JVM GC问题

在过去的几周里,我一直在为我的Glassfish服务器测试不同的JVM设置。堆(除其他外)的主要设置是:-Xms512m,-Xmx512m,-XX:NewRatio = 2。我尝试了不同的GC设置,但在启动服务器几天后,我仍然遇到长时间停顿的问题。我注意到以下几点: 1. -XX:+ UseParallelGC -XX:+ UseParallelOldGC - 小GC每18分钟发生一次,主G ..
发布时间:2018-04-19 18:03:24 Java开发

在EMR群集上优化GC

我在EMR上运行一个用Scala编写的Spark Job,每个执行程序的stdout都被GC分配失败填满。 2016-12-07T23:42:20.614 + 0000:[GC(分配失败)2016-12-07T23:42: 20.614 + 0000:[ParNew:909549K-> 432K(1022400K),0.0089234secs] 2279433K-> 1370373K(32 ..
发布时间:2018-04-19 18:03:12 其他开发

垃圾收集问题在年轻一代

当伊甸园空间年轻一代满时,小GC会触发。而在小型GC过程中,伊甸园的非自由物品和一个来源幸存者的空间将被复制到另一个目的地幸存者的空间。我的问题是,如果目的地幸存者空间已满,小型GC如何处理? 解决方案 如果无法完成/完成次要集合,主要/完整收集被执行。这通常是使用mark-sweep-compact算法而不是复制算法来完成的......这是完整收集成本昂贵的一个原因。但最终(如果你保留填 ..
发布时间:2018-04-19 18:02:20 Java开发

ParallelGCFailedAllocation的大'同步'值

有时我会在gc.log中看到长时间的停顿 2014-07-18T18:42:26.137 + 0400:7846.980:[ 10032K(87744K)] 251198K-175254K(272512K),0.0066190秒] [时间:用户= 0.08 sys = 0.00,实际= 0.01秒] p>停止应用程序线程的总时间: 0.6394170 秒 停止应用程序线程的总时间 ..
发布时间:2018-04-19 18:01:54 其他开发

java GC发生了什么? PermGen的空间正在填满?

我不知道我的java进程发生了什么。这个过程是一个索引过程。它从一组zip文件中读取文档,并将它们添加到lucene索引中。 GC日志显示它正在连续运行Full GC。 4959.569:[Full GC 19960K-> 19960K(10617856K),0.1648590 secs] 4959.764:[Full GC 19960K-> 19960K(10617856K), ..
发布时间:2018-04-19 18:01:03 Java开发

当我们设置Xmx和Xms的大小相等时会发生什么

当我们将Xms和Xmx的值设置为相等时,对FullGC的影响是什么,或者是为HotSpot中的年轻人/终身总管分配了什么。 它在JRockit中有什么不同? 解决方案 将这两个参数设置为相同的值是最佳做法。它会阻止JVM调整堆的大小。主要效果是堆的所有其他部分,特别是几代人,不会因堆大小调整而改变。这可以更好地理解和配置堆。它还消除了调整堆大小造成的暂停。 唯一不会做的secnar ..
发布时间:2018-04-19 18:00:42 Java开发

为什么大多数JVM gcs不使用refcounts?

为什么他们不需要它们,如果有人决定实现一个使用它们的虚拟机,他们可能会面临哪些问题? 解决方案 > 计数引用必须在对象之外完成。 计数引用很慢。处理w /循环引用的速度更慢,但这并非不可能。仍然很慢。 计数引用实际上很慢,因为它必须使用CAS +循环 不计数引用更容易实现,速度更快,与一些操作系统内存页面技巧。 只要对象没有转义,引用计数可以通过转义分析完全删除。 ..
发布时间:2018-04-19 18:00:37 Java开发

有谁知道在Java中配置GC的好指南吗?

我在运行应用程序的JVM遇到问题,它的堆内存看起来像一把梳子。它不断从1.5 GB跳到3 GB,并逐渐恶化到更高的值。我使用G1 GC算法,但不知道如何配置它。 我无法访问正在运行的应用程序的代码,这是一个相当大的应用程序。 因此,底线,有谁知道在Java中配置GC的好指南吗? 解决方案 这是使用5.0 Java虚拟机调整Garbage Collection 从Sun ... ..
发布时间:2018-04-19 18:00:06 Java开发

Java VM是否将对象移动到内存中?如果是这样 - 如何?

Java虚拟机是否将对象移动到内存中,如果是这样,它如何处理更新对移动对象的引用? 我问,因为我是探索以分布式方式(即跨越多个服务器)存储对象的想法,但出于效率原因,我需要能够在服务器之间移动对象。对象需要能够包含指向彼此的指针,甚至包含指向远程服务器上的对象的指针。我试图想到更新对移动对象的引用的最佳方法。 到目前为止,我的两个想法是: 维护一个引用间接引用,它不会在对象的生命 ..
发布时间:2018-04-19 17:59:08 Java开发

为什么JVM的GC喜欢不变的对象?

我知道JVM GC喜欢短生命对象的原因,因为它可以在小GC中收集。但为什么JVM GC爱不可变的对象? 编辑: Charlie Hunt说GC在他的 presentation 。 谢谢 p>如果GC可以知道某个对象不包含任何对任何gen0对象的引用,那么在执行gen0集合时可以忽略它。同样,如果某个对象不包含对任何gen0或gen1对象的引用,则在执行gen1集合时可能会忽略它。在收 ..
发布时间:2018-04-19 17:58:44 其他开发

一个用于确定JVM何时将进入内存/ GC故障的有用指标

我有一个scala数据处理应用程序,95%的时间可以处理内存中抛出的数据。剩下的5%如果不选中,通常不会触发OutOfMemoryError,但是会进入一个主循环周期的主要GC,它们会阻止后台线程执行,并且如果完成了,则需要10倍-50x,只要它有足够的内存。 我已经实现了可以将数据刷新到磁盘并将磁盘流视为内存迭代器。它通常比内存慢一个数量级,但对于这5%的情况就足够了。目前,我正在通过追踪 ..
发布时间:2018-04-19 17:58:27 Java开发

当内存占用超过某个阈值时强制进行完整的垃圾收集

我有一个服务器应用程序,在极少数情况下,可以分配大块内存。 这不是内存泄漏,因为这些块可以垃圾回收器通过执行完整的垃圾回收来声明。 正常的垃圾回收可以释放太小的内存量:在这种情况下它是不够的。 当垃圾回收器执行这些完整的GC时它认为合适,即当应用程序的内存占用量接近用-Xmx指定的分配最大值时。如果不是因为这些有问题的内存分配突然爆发,并且可能会导致OutOfMemoryErrors, ..

java.lang.OutOfMemoryError:压缩类空间

我们正在运行java-8-oracle。 我们在六个月前转移到了java8。 在过去的几天里,我们不时发现OOME,我们无法识别或重现问题。 当我们执行呼叫时到服务器(tomcat),我们在stacktrace上得到这个错误: java.lang.OutOfMemoryError:压缩类空间 重新启动服务器可解决问题。与其他服务器的调用相同,另一个类型调用 ..
发布时间:2018-04-19 17:57:10 Java开发

客户端的最佳垃圾收集设置是什么?

最近的JVM有很多用于垃圾收集的XX参数(请参阅这里例如),但什么是可以使客户端Swing应用程序真正表现更好的选项? 我应该注意的是,在客户端真的很烦我java应用程序是停止世界垃圾回收的大拖延。在Intelli-J IDEA中,我已经看到了它三分钟或更长时间。 编辑:感谢所有的回复。为了回报,我使用了这里。我还设置了-XX:+ StringCache,以查看它是否会减少内存需求。 ..
发布时间:2018-04-19 17:56:39 Java开发

Java堆中的空间/世代之间的比率是不变的?

我已阅读这篇文章关于虚拟机垃圾收集调优以更好地理解Java垃圾收集器。每个空间都有一个虚拟堆空间区域,随着堆空间需要更接近最大堆大小,它可以增长。这可以在这张图中看到: Java GC世代安排http://www.oracle.com/ocom/groups/public/@otn/documents/digitalasset/190244.gif 您可以使用 NewRatio 参数设置年 ..
发布时间:2018-04-19 17:55:16 Java开发