当前位置: 首页 > 知识库问答 >
问题:

无法执行声纳:由:Java堆空间引起

韦睿
2023-03-14

我正在使用Sonar Runner 2.2并设置sonar_runner_opts=-xmx8000m,但我得到以下错误:

Final Memory: 17M/5389M
INFO: ------------------------------------------------------------------------
ERROR: Error during Sonar runner execution
ERROR: Unable to execute Sonar
ERROR: Caused by: Java heap space

这怎么可能呢?

共有1个答案

端木渝
2023-03-14

我有同样的问题,发现了一个非常不同的解决方案,也许是因为我不相信以前的任何答案/评论。有1000万行代码(这比F16战斗机的代码还要多),如果每行有100个字符(非常大),您可以将整个代码库加载到1GB的内存中。简单的数学。为什么8GB内存会失效?

回答:因为Cunity Sonar C++扫描器似乎有一个bug,它会拾取任何扩展名中带有字母“C”的文件。这包括。doc、.docx、.ipch等。因此,内存耗尽的原因是因为它试图读取一些它认为有300MB纯代码的文件,但实际上应该忽略它。

解决方案:查找项目中所有文件使用的扩展名(参见此处)。

然后在sonar.properties文件中添加这些其他扩展作为排除:

sonar.exclusions=**/*.doc,**/*.docx,**/*.ipch

然后将内存限制设置为常规数量:

%JAVA_EXEC% -Xmx1024m -XX:MaxPermSize=512m -XX:ReservedCodeCacheSize=128m %SONAR_RUNNER_OPTS% ...
 类似资料:
  • 我不能再构建任何应用程序了: 两分钟前,我发送了另一个为iOS构建的(更大),它工作。 现在我既不能构建iOS也不能构建Android。 我已经尝试增加Ant上的内存设置,但没有结果。 谢谢你的帮助!

  • 我面临一些关于内存问题的问题,但我无法解决它。非常感谢您的帮助。我不熟悉Spark和pyspark功能,试图读取大约5GB大小的大型JSON文件,并使用 每次运行上述语句时,都会出现以下错误: 我需要以RDD的形式获取JSON数据,然后使用SQLSpark进行操作和分析。但是我在第一步(读取JSON)本身就出错了。我知道要读取如此大的文件,需要对Spark会话的配置进行必要的更改。我遵循了Apac

  • 在Corda 3.3中工作正常,但在Corda 4.0中失败 节点正常启动,然后当我调用第一个非常简单的流时——会发生这个错误。 我试图用2048堆空间运行node,但是没有成功。 堆栈跟踪:

  • 这些是我用过的插件abacus、checkstyles、pmd、java、无用代码跟踪数据库:MySQL 提前致谢

  • 我有一个声纳配置,看起来像这样: 当从我的gradle脚本运行这个时,它看起来像这样: 应该添加到上面的sonarproperties中。

  • 在Ubuntu中,当我运行hadoop示例时: 在日志中,我得到的错误为: 信息映射。JobClient:任务Id:尝试\u 201303251213\u 0012\u m\u000000 \u 2,状态:失败错误:Java堆空间13/03/25 15:03:43信息映射。JobClient:任务Id:trunt\u 201303251213\u 0012\u m\00000 1\u 2,状态:F