【问题标题】:Clover Java heap space errorClover Java 堆空间错误
【发布时间】:2011-10-10 15:10:21
【问题描述】:

我在从 hudson 运行时遇到 java 堆空间错误,我将我的 MAVEN_OPTS 设置如下,任何人都可以让我知道这个问题的解决方案是什么。

-Xmx4096m -XX:PermSize=3000m -XX:MaxPermSize=4096m
[信息] --------------------------------------------- ------------------------- [错误] 致命错误 [信息] --------------------------------------------- ------------------------- [INFO] Java 堆空间 [信息] --------------------------------------------- ------------------------- [INFO] Trace`在此处输入代码` java.lang.OutOfMemoryError:Java 堆空间 在 java.util.BitSet.initWords(BitSet.java:144) 在 java.util.BitSet.(BitSet.java:139) 在 com.cenqua.clover.InMemPerTestCoverage.(InMemPerTestCoverage.java:66) 在 com.cenqua.clover.CloverDatabase.mergePerTestCoverage(CloverDatabase.java:494) 在 com.cenqua.clover.CloverDatabase.merge(CloverDatabase.java:437) 在 com.cenqua.clover.CloverMerge.mainImpl(CloverMerge.java:36) 在 com.atlassian.maven.plugin.clover.CloverAggregateMojo.mergeCloverDatabases(CloverAggregateMojo.java:260) 在 com.atlassian.maven.plugin.clover.CloverAggregateMojo.execute(CloverAggregateMojo.java:79) 在 org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:490) 在 hudson.maven.agent.PluginManagerInterceptor.executeMojo(PluginManagerInterceptor.java:182) 在 org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:694) 在 org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeStandaloneGoal(DefaultLifecycleExecutor.java:569) 在 org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:539) 在 org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:387) 在 org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:284) 在 org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:180) 在 org.apache.maven.lifecycle.LifecycleExecutorInterceptor.execute(LifecycleExecutorInterceptor.java:65) 在 org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:328) 在 org.apache.maven.DefaultMaven.execute(DefaultMaven.java:138) 在 org.apache.maven.cli.MavenCli.main(MavenCli.java:362) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 在 java.lang.reflect.Method.invoke(Method.java:597) 在 org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315) 在 org.codehaus.classworlds.Launcher.launch(Launcher.java:255) 在 hudson.maven.agent.Main.launch(Main.java:185) 在 hudson.maven.MavenBuilder.call(MavenBuilder.java:165) 在 hudson.maven.MavenModuleSetBuild$Builder.call(MavenModuleSetBuild.java:1005) 在 hudson.maven.MavenModuleSetBuild$Builder.call(MavenModuleSetBuild.java:936) 在 hudson.remoting.UserRequest.perform(UserRequest.java:118) 在 hudson.remoting.UserRequest.perform(UserRequest.java:48) [信息] --------------------------------------------- ------------------------- [INFO] 总时间:87 分 35 秒 [INFO] 完成于:2011 年 7 月 21 日星期四 12:20:13 PDT [INFO] 最终内存:112M/3123M [信息] --------------------------------------------- ------------------------- 频道已停止 正在发布 Clover 覆盖率报告...

【问题讨论】:

    标签: java maven jvm out-of-memory clover


    【解决方案1】:

    根据我的经验,-XX:MaxPermSize 不应该等于 -Xmx。 另一方面,它是-Xmx内部的一个子集永久内存。

    我发现 50% 可能就足够了。无论如何,我们需要监控 GC 用于确保它是否配置正确。

    e.g.
    -Xmx512M -XX:MaxPermSize=256M 
    

    我希望这会有所帮助。

    问候,

    查理·Ch.

    【讨论】:

      猜你喜欢
      • 2023-04-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-21
      • 2012-06-05
      • 2018-06-16
      相关资源
      最近更新 更多