jvm相关内容

Java运行时环境检测到致命错误:在pc = 0x00002b2f7e9b2744,pid = 28778,tid = 1138739520处的SIGSEGV(0xb)

执行程序时出现以下错误。 这并非总是如此。 该代码包含一些复杂的计算,其中包含大量数据。 有人可以帮助识别错误 # #Java Runtime Environment检测到一个致命错误: # #SIGSEGV(0xb)pc = 0x00002b2f7e9b2744, pid = 28778,tid = 1138739520 # #JRE版本:7.0-b147 #Java虚拟 ..
发布时间:2018-04-19 18:09:18 Java开发

JVM在停止世界暂停期间使用什么机制来阻止线程

我在一次采访中听到了这个问题,无法提供答案。后来我通过互联网搜索,仍然没有找到答案。任何人都可以告诉我,JVM如何在停止收集垃圾的时候停止线程,以及如何再次运行它们。 解决方案 至少对于HotSpot和OpenJDK,JVM使用安全点来停止每个线程中的应用程序流,这些流可以通过JITed代码引入,也可以通过更改解释代码的字节码映射来实现(参见本文由Alexey Ragozin了解更多详情)。 ..
发布时间:2018-04-19 18:09:14 其他开发

当JVM无法达到安全点时如何获得Java堆栈

我们最近有一种情况,我们的一个生产JVM会随机冻结。 Java进程正在燃烧CPU,但所有可见的活动都将停止:没有日志输出,没有写入GC日志,没有响应任何网络请求等等。该进程将一直持续到此状态,直到重新启动。 事实证明,org.mozilla.javascript.DToA类在某些输入上被调用时会感到困惑,并以巨大的值调用BigInteger.pow(例如5 ^ 2147483647),这会触 ..
发布时间:2018-04-19 18:08:36 其他开发

老根堆满了,伊甸园和幸存者很低,几乎空无一人

最近生产环境变得非常缓慢。该进程的CPU占用了200%。然而,它继续工作。重新启动服务后,它再次正常工作。我有几个症状: 帕尔幸存者空间堆很长一段时间是空的,垃圾收集大约占CPU时间的20%。 JVM选项: X:+ CMSParallelRemarkEnabled,-XX: + HeapDumpOnOutOfMemoryError,-XX:+ UseConcMarkSweepGC, ..
发布时间:2018-04-19 18:08:10 Java开发

在最近的JVM中,不可见引用仍然是一个问题?

我正在阅读 Java平台性能 (遗憾的是,自从我提出这个问题以来,这个链接似乎从互联网上消失了),A.3.3节让我担心。 我一直在做这样的假设,即一个掉出范围的变量将不再被视为GC根源,但这篇论文似乎与此矛盾。 最近的JVM,特别是Sun的1.6.0_07版本,仍然有这个限制?如果是这样,那么我有很多代码可以分析...... 我问这个问题是因为这篇论文是从1999年开始的 - 有 ..
发布时间:2018-04-19 18:07:22 Java开发

为什么这些Tomcat服务器的JVM每小时执行一次完整的GC?

我们运行了很多Tomcat服务器,并且观察到完整垃圾回收(GC)通常每小时执行一次,特别是当内存使用率相对较低时。准确的时间似乎与应用程序服务器启动的时间有关;如果服务器在01:13启动,完整的GC在02:13完成,下一个完整的GC将在03:13完成。我无法找到任何文档来解释这种行为。 这是一个问题,因为同时启动的服务器池都倾向于在完全相同的情况下执行完整的GC时间。如果GC延迟时间足以导致 ..
发布时间:2018-04-19 18:07:17 Java开发

Java堆被无法访问的对象淹没

我们已经开始在Java EE应用程序中遇到一些严重的问题。具体来说,应用程序在启动后几分钟内运行高达99%的老一代堆。没有OOM被抛出,但实际上JVM没有响应。 jstat显示老一代的大小没有减少,没有垃圾回收,kill -3表示: 堆 PSYoungGen总计682688K,使用506415K [0xc1840000,0xf3840000,0xf3840000) eden space ..
发布时间:2018-04-19 18:06:57 Java开发

JVM GC是否可以在参考比较中移动对象,导致比较失败,即使双方都指向相同的对象?

众所周知,GC有时会在内存中移动对象。而且据我的理解,只要所有引用在对象移动时(在调用任何用户代码之前)都更新,这应该是完全安全的。 然而,我看到有人提到参考比较可能是不安全的,因为GC在参考比较的中间移动了对象,即使两个参考都应该引用相同的对象,比较也可能失败? 即,有没有什么情况下下面的代码不会显示“true”? Foo foo = new Foo(); Foo bar ..
发布时间:2018-04-19 18:06:40 Java开发

JVM内存管理&垃圾收集书?

任何人都可以建议一本书(或任何其他来源)来彻底揭示JVM内存管理的内部结构。垃圾收集(优化,工作,循环引用,大脑,讨论各种JVM impls ...)? [到目前为止我发现的是单独的文章致力于各方面,但没有重量tome :)。一些用于实现Hotspot的好材料是此处。 ] 非常感谢您给出的任何建议。 如果您寻找独立于供应商的资源来揭示和彻底描述所有研究/设计的各种GC ..
发布时间:2018-04-19 18:05:52 Java开发

GC调整 - 阻止完整的GC

我试图避免在生产环境中运行Tomcat中的Grails应用程序的Full GC(从下面的gc.log示例) 。 有关如何更好地配置GC的任何建议? 14359.317:[Full GC 14359.317:[CMS:3453285K-> 3099828K(4194304K), [13.1778420秒] 4506618K-> 3099828K(6081792K),[CMS Perm:26 ..
发布时间:2018-04-19 18:05:28 Java开发

年轻一代的JVM垃圾收集

如果我错了,请随时纠正我。在JVM堆中,有两代人,老少皆宜。在进行完整的GC时,在老一代中,像紧凑空间和固定孔这样的繁重操作会导致JVM挂起。我发现在年轻一代中,应用了轻量级GC,另外还有一个领域叫做伊甸参与了我的搜索结果。然而,在搜索了很多文件后,我仍然对年轻一代GC有两个混淆,在年轻一代中,GC似乎确实如此不适合老一代GC工作的方式(即旧一代GC紧凑和固定孔)?如果是这样,年轻一代的GC如何运 ..
发布时间:2018-04-19 18:05:21 其他开发

为什么JVM全面GC需要停止世界?

我被问到了这个问题,并且我刚刚回答“因为JVM需要移动对象”,但后来我使用了Google,并且似乎找不到任何合理的答案。 解决方案 首先,在wikipedia上垃圾回收文章是真的很好的阅读。 说到。 一般来说GC不需要Stop世界暂停。 有几乎是免费的JVM实现(例如 Azul Zing JVM )。 JVM要求STW收集垃圾取决于它使用的算法。 $ b Mark Swee ..
发布时间:2018-04-19 18:05:16 其他开发

什么触发了Java垃圾收集器

我得到一个对象在没有更多实时引用的情况下有资格进行垃圾回收,但是如果它包含活动对象的引用呢? 可以说我有一个节点集合,可以再次引用更多节点 列表 1 - >节点a - >节点b 2 - >节点c - >节点d 3 - >节点d - >节点c 4 - >节点e 5 现在,如果我删除列表,节点cd和e应该是垃圾集。节点e没有更多的引用,并且 ..
发布时间:2018-04-19 18:05:06 Java开发

生活在远程JVM中的对象的JDI镜像的寿命

我一直在编写一个Java客户端,它使用 JDI 来创建和修改远程JVM中的对象(通过连接到 JDWP 代理服务器)。我的项目的一个要求是,我无法挂起远程JVM中的所有线程,这意味着我创建的对象可能容易被垃圾收集,然后才能使它们在JVM中可访问。 在某些情况下,我在远程JVM中创建对象,但它们随机被垃圾收集。例如,如果我通过 调用 ObjectReference.setValue(Field, ..
发布时间:2018-04-19 18:04:53 Java开发

Neo4j批量导入“neo4j-admin导入”OutOfMemoryError:Java堆空间和OutOfMemoryError:超出GC开销限制

我的单机可用资源为: 机器总内存:2.00 TB 空闲机器内存:1.81 TB 最大堆内存:910.50 MB 处理器:192 配置的最大内存:1.63 TB 我的file1.csv文件大小为600GB 我的csv文件中的条目数量= 3 000 000 000 头结构 attempt1 item_col1:ID(标签),item_c ..
发布时间:2018-04-19 18:04:44 其他开发

与堆使用情况相比,Java应用程序的系统内存使用量巨大

我有一个像java框架的微服务。许多java进程在一个盒子上运行(ubuntu 14.04.4 LTS)。 java进程使用很多系统内存,因此交换空间被大量使用。 jstat gc报告不解释系统内存使用情况。所有java进程都使用参数运行 $ b $ pre $ -XX:MinHeapFreeRatio = 20 -XX:MaxHeapFreeRatio = 40 -XX:GCTimeRatio ..
发布时间:2018-04-19 18:04:34 Java开发

当我们在其上显式调用finalize()时,是否释放了对象内存?

就我的理解最终确定()和GC是两个不同的方面。 GC使用finalize()方法释放对象内存。我们不能说明GC何时会发生(即使我们明确地调用了System.gc())。但是我们可以在一个Object上明确地调用finalize()。 函数会立即执行(内存释放)还是等待GC 像System.gc()调用一样发生? 同样根据文档,finalize方法永远不会由Java虚拟机多 ..
发布时间:2018-04-19 18:04:03 Java开发

我如何更快地使用过量的GC?

有时候,我的JVM耗尽内存,而不是OOMing,我可以从中恢复(或堆dumpOnOOM和调试),它往往会在内存溢出之前在GC中出现几个小时的颠簸。 这与(未回答)问题基本相同:如何配置Java GC开销限制? 但我怀疑答案是您无法调整98%/ 2%的阈值,所以我想要以任何方式实现类似影响。注意过多的GC,最好是导致OOM,或者杀死JVM等。 解决方案 Oracle的 GC人体工程学指南涵盖了 ..
发布时间:2018-04-19 18:04:01 其他开发