草庐IT

java.lang.OutOfMemoryError : Java heap space

执行多线程程序时出现以下错误java.lang.OutOfMemoryError:Javaheapspace上述错误发生在其中一个线程中。据我所知,堆空间仅由实例变量占用。如果这是正确的,那么为什么在运行良好一段时间后会出现此错误,因为在创建对象时分配了实例变量的空间。有没有办法增加堆空间?我应该对我的程序进行哪些更改以减少它占用的堆空间? 最佳答案 如果你想增加你的堆空间,你可以使用java-Xms-Xmx在命令行上。默认情况下,这些值基于JRE版本和系统配置。你可以找到moreabouttheVMoptionsontheJava

java - System.gc() 什么时候做某事?

我知道垃圾收集在Java中是自动化的。但我知道,如果您在代码中调用System.gc(),JVM可能会或可能不会决定在此时执行垃圾收集。这如何精确地工作?当看到System.gc()时,JVM究竟基于什么/参数决定执行(或不执行)GC?是否有任何示例表明将其放入代码中是个好主意? 最佳答案 在实践中,它通常决定进行垃圾回收。答案因许多因素而异,例如您正在运行的JVM、它所处的模式以及它使用的垃圾收集算法。我不会在您的代码中依赖它。如果JVM即将抛出OutOfMemoryError,调用System.gc()不会阻止它,因为垃圾收集器

java - System.gc() 什么时候做某事?

我知道垃圾收集在Java中是自动化的。但我知道,如果您在代码中调用System.gc(),JVM可能会或可能不会决定在此时执行垃圾收集。这如何精确地工作?当看到System.gc()时,JVM究竟基于什么/参数决定执行(或不执行)GC?是否有任何示例表明将其放入代码中是个好主意? 最佳答案 在实践中,它通常决定进行垃圾回收。答案因许多因素而异,例如您正在运行的JVM、它所处的模式以及它使用的垃圾收集算法。我不会在您的代码中依赖它。如果JVM即将抛出OutOfMemoryError,调用System.gc()不会阻止它,因为垃圾收集器

java.lang.OutOfMemoryError : Java heap space in Maven

当我运行maven测试时,会发生java.lang.OutOfMemoryError。我用谷歌搜索了解决方案,并尝试exportMAVEN_OPTS=-Xmx1024m,但没有成功。有人知道这个问题的其他解决方案吗?我正在使用maven3.0运行mvntest-e时在此处粘贴错误信息Failedtests:warning(junit.framework.TestSuite$1)testDefaultPigJob_1(com.snda.dw.pig.impl.DefaultPigJobLocalTest)testDefaultPigJob_2(com.snda.dw.pig.impl.D

java.lang.OutOfMemoryError : Java heap space in Maven

当我运行maven测试时,会发生java.lang.OutOfMemoryError。我用谷歌搜索了解决方案,并尝试exportMAVEN_OPTS=-Xmx1024m,但没有成功。有人知道这个问题的其他解决方案吗?我正在使用maven3.0运行mvntest-e时在此处粘贴错误信息Failedtests:warning(junit.framework.TestSuite$1)testDefaultPigJob_1(com.snda.dw.pig.impl.DefaultPigJobLocalTest)testDefaultPigJob_2(com.snda.dw.pig.impl.D

android - 如何在 MonoDevelop 中编译 MonoDroid App 时修复 "OutOfMemoryError: java heap space"

当我尝试编译(不执行)我的一个项目时,我最近收到以下错误:Tool/usr/bin/javaexecutionstartedwitharguments:-jar/Applications/android-sdk-mac_x86/platform-tools/lib/dx.jar--no-strict--dex--output=obj/Debug/android/bin/classes.dexobj/Debug/android/bin/classes/Developer/MonoAndroid/usr/lib/mandroid/platforms/android-8/mono.andro

android - 如何在 MonoDevelop 中编译 MonoDroid App 时修复 "OutOfMemoryError: java heap space"

当我尝试编译(不执行)我的一个项目时,我最近收到以下错误:Tool/usr/bin/javaexecutionstartedwitharguments:-jar/Applications/android-sdk-mac_x86/platform-tools/lib/dx.jar--no-strict--dex--output=obj/Debug/android/bin/classes.dexobj/Debug/android/bin/classes/Developer/MonoAndroid/usr/lib/mandroid/platforms/android-8/mono.andro

c++ - 哪个更快 : Stack allocation or Heap allocation

这个问题听起来可能相当初级,但这是我与另一位合作开发者的争论。我一直在尽可能地堆栈分配东西,而不是堆分配它们。他一边跟我说话,一边看着我,并评论说没有必要,因为它们在性能方面是相同的。我一直认为堆的增长是恒定的时间,堆分配的性能取决于堆的当前复杂性,用于分配(找到适当大小的孔)和取消分配(折叠孔以减少碎片化,因为如果我没记错的话,许多标准库实现在删除期间需要时间来执行此操作)。这让我觉得可能非常依赖编译器。特别是对于这个项目,我使用的是MetrowerksPPC的编译器建筑学。了解这种组合会很有帮助,但总的来说,对于GCC和MSVC++,情况如何?堆分配的性能不如堆栈分配吗?没有区别吗

c++ - 哪个更快 : Stack allocation or Heap allocation

这个问题听起来可能相当初级,但这是我与另一位合作开发者的争论。我一直在尽可能地堆栈分配东西,而不是堆分配它们。他一边跟我说话,一边看着我,并评论说没有必要,因为它们在性能方面是相同的。我一直认为堆的增长是恒定的时间,堆分配的性能取决于堆的当前复杂性,用于分配(找到适当大小的孔)和取消分配(折叠孔以减少碎片化,因为如果我没记错的话,许多标准库实现在删除期间需要时间来执行此操作)。这让我觉得可能非常依赖编译器。特别是对于这个项目,我使用的是MetrowerksPPC的编译器建筑学。了解这种组合会很有帮助,但总的来说,对于GCC和MSVC++,情况如何?堆分配的性能不如堆栈分配吗?没有区别吗

GC耗时高,原因竟是服务流量小?

原创:扣钉日记(微信公众号ID:codelogs),欢迎分享,转载请保留出处。简介最近,我们系统配置了GC耗时的监控,但配置上之后,系统会偶尔出现GC耗时大于1s的报警,排查花了一些力气,故在这里分享下。发现问题我们系统分多个环境部署,出现GC长耗时的是俄罗斯环境,其它环境没有这个问题,这里比较奇怪的是,俄罗斯环境是流量最低的一个环境,而且大多数GC长耗时发生在深夜。发现报警后,我立马查看了GC日志,如下: 日志中出现了to-spaceexhausted,经过一番了解,出现这个是由于g1在做gc时,都是先复制存活对象,再回收原region,当没有空闲空间复制存活对象时,就会出现to-space