草庐IT

gc_collect_cycles

全部标签

Java HotSpot(TM) 64 位服务器 VM 警告无法打开文件 logs/gc.log,因为没有这样的文件或目录

当我尝试运行时出现此错误RACK_ENV=testberailstesttest/system/service_provider_map_test.rb—seed48088JavaHotSpot(TM)64-BitServerVMwarning:Cannotopenfilelogs/gc.logduetoNosuchfileordirectory然后测试因这个错误而超时Timeoutwhilewaitingforclusterstatus[green]and[1]nodes/Users/patrickward/.rbenv/versions/2.4.1/lib/ruby/gems/2.

java - 在Java中递归转储聚合结构(Collection,Array)的内容

这是我关于Stackoverflow的第一个问题,如果您在我的第一篇文章中发现任何荒谬之处,请多多包涵。仅供引用,我已经阅读了SO常见问题解答,并且了解其各种政策。你看,我是一个大量使用PHP、Perl、Python、ROR等语言的人,最近我“上下文切换”到JavaEE。你看,我使用过的几种语言都有一个结构,使我能够在没有for/foreach/for..in循环的情况下递归地转储聚合结构的内容例如,a=AnycompositeDatastructurePHP有var_dump()andprint_r()Perl有Data::DumperROR有PrettyPrintPython有pp

java - 非常慢的 Java full GC 挂钟

有时,在测试机器(Windows)上,Java完整GC需要超过20秒。GC日志显示real时间非常高,user也很高,但没有那么高(大约3秒)。在一种情况下,它是:21.2209796secs[Times:user=3.76sys=0.45,real=21.22secs]可能是什么原因?我有一个怀疑,但现在不想说。找出根本原因的最简单方法是什么?如果您不了解Windows但了解Linux,那也是一种选择:可以在Linux上重新运行测试。流程是这样开始的:"%JAVA_HOME%\bin\java.exe"-verbose:gc-XX:+PrintGCDetails-XX:+PrintG

java - 如何解释导致 OutOfMemoryError 的 G1 GC 日志?

我想知道是否有人能够向我解释如何解释导致OutOfMemoryError的一些G1GC日志?我知道堆转储是找出实际使用堆的最佳选择,但我无法获取它,因为它包含无法离开客户端站点的protected信息。我只有应用程序日志(包括来自OOME的堆栈)和G1GC日志。完整的G1GC日志包含很多细节,因此除非有人特别需要查看它们,否则我不会将它们放在这里。这些来自的特定Java版本是:>java-versionjavaversion"1.7.0_21"Java(TM)SERuntimeEnvironment(build1.7.0_21-b11)JavaHotSpot(TM)64-BitServ

java - GC 和 FontData 获取字体高度有什么区别?

这解释了字体指标我认为我们可以像这样在SWT中获得“字体高度”;GCgc=newGC(label);System.out.println(gc.textExtent(label.getText()));System.out.println(label.getFont().getFontData()[0].getHeight());为什么这两个出局不一样?哪个是字符串的正确高度? 最佳答案 GC#textExtent()以像素返回范围,而FontData以点返回字体。这里的单位不同。 关于

java - Spring 数据 JPA OutOfMemoryError : GC overhead limit exceeded

我正在开发一个包含大量实体(3072)的应用程序。我们使用jhipster作为项目结构。到目前为止一切正常,直到我们想将SpringBoot版本从1.3.2(1.9.2spring-data-jpa)升级到当前的1.5.1(spring-data-jpa1.11.0)我在启动时遇到异常.提供更多内存、堆大小等没有帮助。我认为问题在某种程度上与1.10.X之后的spring-data-jpa有关,因为我们在spring-data-jpa1.9.x中没有这样的问题Causedby:org.springframework.beans.factory.UnsatisfiedDependency

java - 在 JDK 1.5 中使用 Collections.newSetFromMap 的替代方案?

我想在不支持它的JDK1.5中使用这种“Collections.newSetFromMap()”方法。Java5也不支持ConcurrentHashSet类。必须在JDK1.5中编译以下行。我该怎么做?protectedSetknownLCWords=Collections.newSetFromMap(newConcurrentHashMap());请指导我。 最佳答案 下面是来自JavaCollectionssource的那个方法的实现。.本质上,该方法返回包含Map的AbstractSet子类,以及一个transientSet。

java - 为什么在 Collection 中声明的方法也在 List Interface 中重复?

这个问题在这里已经有了答案:Interfacesincollectionsframework(3个答案)关闭9年前。是否有任何特定原因(除了下面提到的)为什么在java.util.Collection中声明的所有方法在java.util.List接口(interface)中重复?根据java.util.ListAPI:TheListinterfaceplacesadditionalstipulations,beyondthosespecifiedintheCollectioninterface,onthecontractsoftheiterator,add,remove,equals,

java - 为什么并发 GC 需要 remark 阶段

并发GC需要remark阶段。remarkphase的作用是在concurrentmarkphase中标记被修改的对象。但我认为如果我们只在concurrentmarkphase标记新创建的对象,就没有必要执行remarkphase。remarkphase是因为对象被修改了。修改可以是两种类型。一个是创建新对象,另一个是修改指向另一个对象的指针。如果我们标记新创建的对象,就可以轻松解决新对象问题。而修改指向另一个对象的指针实际上不是问题。因为Deadobjectcannotrevive死对象意味着没有人可以指向该对象。他们如何复活?所以修改后的指针应该指向已经标记好的对象。这意味着不需

java - JVM 的 GC 事件的编程通知

我想跟踪在GC上花费了多少时间以及收集了多少内存,但不是通过分析GC日志(即分析我从-XX:+PrintGCWhatever得到的)。我发现我可以使用Sun的ManagementFactory获得一个GarbageCollectorMXBean,它可以给我一些包含内存信息的GCInfo对象,但我不能保证我可以通过这种方式收集所有GC。有人知道在代码中执行此操作的方法吗? 最佳答案 GarbageCollectorMXBean是我能在SunJVM上找到的最好的。根据我的经验,它实际上非常接近您的要求。我想您可以有一个专用线程,它会不时