jvm相关内容

如何在JVM中强制/重现FullGC?

有没有办法在JVM中强制/重现FullGC x秒?基本上我需要这个来验证在某些基于心跳的应用(动物园管理员的客户)中问题的根本原因。 编辑:unix命令 kill -STOP 和 kill -CONT 模拟FullGC(停止世界行为)? 解决方案 您可以在HotSpot JVM上模拟一个非常长的停止世界事件,与用户的观点类似于FullGC 。 HotSp ..
发布时间:2018-04-19 18:32:42 Java开发

JavaFX节点对象不被垃圾收集

JavaFX(1.2.x和1.3.x)似乎不允许至少节点和场景的垃圾收集。一个Node对象在从Scene中移除后没有被释放(没有其他明确的引用)。 这里举例说明: var buttonB:Button = Button { text:“我只是挂在这里” } var buttonC:Button = Button { text:“让我泄漏内存” action:fu ..
发布时间:2018-04-19 18:32:16 其他开发

我可以针对堆转储文件运行Java垃圾回收吗?

我有一个巨大的Java堆转储文件。它还包含(我相信)无法访问的对象,这将是JVM收集的垃圾(或者希望如此)。 有没有一种工具可以让我运行垃圾收集器对付这个文件,以便我可以 摆脱无用的数据 验证/使用各种算法模拟垃圾收集以查看它们的工作情况。 识别垃圾收集问题 解决方案 没有关于2 + 3的想法(我认为这是不可能的),但至少需求1是Eclipse Memory Analyze ..
发布时间:2018-04-19 18:31:23 Java开发

jdk1.6内存布局

我正在使用jdk1.6。我配置 Xmx = 2G,Xms = 2G,NewSize = MaxNewSize = 660m 我启用详细的gc。我看到这我不undertsnaidng: PSYoungGen总计608256K,使用32440K eden空间540672K,使用6% 来自空间67584K,0%使用 到67584K空间,0%使用 根据我的配置,You ..
发布时间:2018-04-19 18:30:43 Java开发

什么是JVM GC的大对象

查理亨特说,他的演讲稿中的大型对象对JVM GC不利。 。因为: 大对象分配和初始化代价昂贵。 > 如何定义大对象?> 大对象的大小不同会导致Java堆分页。我怎么知道对象是否是大对象?谢谢 解决方案 定义取决于平台,JVM和JVM配置。例如,这里是摘自 垃圾收集在三大JVM中的不同之处 由Michael Kopp发布: p> 大小对象 JRockit在 分配期间区分 ..
发布时间:2018-04-19 18:28:56 Java开发

强制JVM尽早收集垃圾并尽早减少使用的系统内存

我们运行一个我们没有开发的Java应用程序。 此应用程序对于某些任务使用了相当多的内存,具体取决于所处理的数据,最高可达4GB。在其他时候,只需要很少的内存,大约300MB。 一旦JVM抓住大量内存,花费很长时间才会收集垃圾甚至更长的时间,直到内存返回到操作系统。这对我们来说是一个问题。 会发生什么如下:JVM需要大量内存才能完成任务,并抓取4GB Ram来创建4GB Heap。然后 ..
发布时间:2018-04-19 18:28:39 Java开发

如何确保JVM以Xms的值开始

当我运行一个启动堆大小为3G的java程序(由-Xms3072m VM参数设置)时,JVM不会以该大小启动。它从400米左右开始,然后根据需要继续获取更多内存。 这对我来说是一个严重的问题。我知道JVM将在一段时间后需要上述数量。当JVM增加的时候是根据需要增加内存的时候,它会减慢速度。在JVM获取更多内存的过程中,大量时间用于垃圾收集。我认为内存获取是一项昂贵的任务。 如何确保JVM ..
发布时间:2018-04-19 18:28:37 Java开发

GC暂停并杀死-STOP会产生相同的行为吗?

我看到Java客户端应用程序在现场崩溃,我认为这是因为它连接的服务器经历了12秒的完全GC暂停。但是,当我尝试在本地从Eclipse运行客户机/服务器并使用kill -STOP重新执行行为并杀死-CONT以模拟服务器上的GC暂停时,我无法让客户机应用程序崩溃 - 它只是旋转,直到我杀了-CONT。 我想弄清楚GC停顿是否真的是问题(如果不是,我需要潜入看看还有什么可以进行的代码)。在长时间的 ..
发布时间:2018-04-19 18:28:16 Java开发

老一代空间在JVM中的使用

就我所知,对于旧一代JVM中的空间,它可以用于两个目的,用于对象的 从年轻一代推广到老一代? 用于特殊用例中的新对象分配(https://stackoverflow.com/questions/9053144/will-i-encounter-java-lang-outofmemoryerror-even-with-no - 内存不足) 我的问题是, 是否有任何其他用例会在旧一 ..
发布时间:2018-04-19 18:23:10 Java开发

从Java 6 + Tomcat 6升级到Java 8 + Tomcat 8时的垃圾回收器使用情况

我们正在从Java 6和Tomcat 6升级到Java 1.8.0_45和Tomcat 8.0.23,Linux服务器,64位。 我正在比较内存使用情况,并且我正面临一个奇怪的行为。 这是Eden Space在Tomcat 8中看起来与Java 8一样没有流量,刚开始和闲置: XX:+ UseParallelGC -XX:+ UseParallelOldGC -XX:+ Disabl ..
发布时间:2018-04-19 18:21:14 Java开发

ParNew和CMS初始相关

我观察到,如果没有最近的ParNew,并且如果CMS-Initial-Mark阶段启动,则CMS-Initial-Mark阶段花费较长时间来标记旧代中的对象。 好的部分是我发现ParNew的大部分时间(可能是偶然的,或者JVM在内部执行这些操作)发生在CMS-Initial-Mark阶段之前,然后标记相同数量的对象在老一代,CMS需要更少的时间。 想知道这个观察背后的推理。 注意 ..
发布时间:2018-04-19 18:21:09 其他开发

Java GC是确定性的

我在具有相同JVM参数的Java产品上运行同一场景的多次运行。每次运行都会根据持续时间和“启动时间”给出不同的GC行为。这是预期的吗? 解决方案 Java Hotspot VM 未实现确定性GC algorithm。 通常,对于Java,确实存在确定性GC算法。例如,在以下JVM中: 节拍器GC(IBM VM) BEA JRockit li> Azul的Pauseless垃圾 ..
发布时间:2018-04-19 18:21:00 其他开发

调整用于CPU缓存友好性的Java类

在设计java类时,有什么建议可以实现CPU缓存的友好性? 到目前为止,我学到的是尽可能使用POD即int而不是整数)。因此,分配包含对象时,数据将被连续分配。例如: class Local { private int data0; private int data1; // ... }; 比缓存更友好 class NoSoLocal { ..
发布时间:2018-04-19 18:20:26 Java开发

JVM垃圾收集

一般来说(因为我知道Oracle / sun和其他第三方以及MS都有标准的JVM实现),JVM是否只创建一个作为守护程序运行的垃圾收集线程来收集垃圾对象或者JVM产生多个线程来完成垃圾收集? 解决方案 使用 -XX:+ UseParallelGC 并且是默认收集器使用多个线程。使用 -XX:+ UseConcMarkSweepGC 启用的“并发低暂停收集器”为并发收集器使用一个线程,但其停 ..
发布时间:2018-04-19 18:18:26 Java开发

Jmeter java.lang.OutOfMemoryError:超出GC开销限制

我使用Jmeter将工作负载注入部署在AWS EC2实例上的应用程序。测试必须非常巨大:持续10个小时,工作负载配置文件具有双峰形状,5分钟内请求约2600个请求。实际上,我有一个m3.xlarge实例,其中部署了应用程序,并且每个运行jmeter实例的m3.xlarge实例有8个。使用python脚本,要注入的工作量将在8个客户端实例之间进行分配,例如,如果原始工作负载为800个请求,每个jme ..
发布时间:2018-04-19 18:18:07 Java开发

为什么在执行完GC之后,永久生成的分配大小会增加?

以下是我从jvisualvm执行执行GC 后执行的快照。 和 第一张图片是Heap stats,第二张图片是perm gen stats。我无法理解,当我使用GC 堆大小减少(如预期),但永久代的分配大小增加(尽管所使用的permgen大小保持不变) 使用的JVM参数 -Xbootclasspath / p:../ xyz.jar -Xbootclasspath / ..
发布时间:2018-04-19 18:18:04 Java开发