GradleWorkerMain OutOfMemoryError
我正在尝试对基于蚂蚁的(Netbeans RCP)项目进行评分并找到奇怪的gradle行为.
我用剖析器做了一些观察并得到了下一个结果. 环境配置 Gradle 1.9 Build time: 2013-11-19 08:20:02 UTC Build number: none Revision: 7970ec3503b4f5767ee1c1c69f8b4186c4763e3d Groovy: 1.8.6 Ant: Apache Ant(TM) version 1.9.2 compiled on July 8 2013 Ivy: 2.2.0 JVM: 1.7.0_45 (Oracle Corporation 24.45-b08) OS: Linux 2.6.32-431.el6.x86_64 amd64 $echo $GRADLE_OPTS -XX:+UnlockCommercialFeatures -XX:+FlightRecorder -Xms256m -Xmx2048m $echo $ANT_OPTS -XX:+UnlockCommercialFeatures -XX:+FlightRecorder -Xms256m -Xmx2048m > build.gradle – 包含ant任务的导入(清理,构建,单元测试) 使用gradle运行导入的ant junit测试任务 Gradle fork为此分离jvm并使用不同的Xmx值运行JUnitTestRunner,忽略 > 540 MB 不知道gradle如何为每个JUnitTestRunner ant任务定义Xmx大小. 为相同的模块运行gradle构建任务 Gradle知道以前的构建结果,并立即开始对未经测试的模块进行junit测试. –java.lang.OutOfMemoryError: GC overhead limit exceeded –console log –snapshot 更多细节: –gradle main jvm details –GradleWorkerMain jvm details 问题 >为什么ant任务max Xmx大小在540 MB足以进行测试而GradleWorkerMain 1.5GB还不够? 解决方法
要控制Gradle测试JVM可用的内存量,请配置相应的测试任务.例如:
test { maxHeapSize = "1024m" jvmArgs "-XX:MaxPermSize=256m" } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |