gpt4 book ai didi

java - Jade : java. lang.OutOfMemoryError: Java 堆空间

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:29:52 30 4
gpt4 key购买 nike

我一直在使用 jade(Java 代理开发框架)来创建基于网络的消息传递系统。

到目前为止,我注意到 jade 运行没有问题,但有一天,我收到这条消息,

enter image description here

JVM 堆空间错误!

经过调查,我发现这是由于集合变量可能堵塞了占用 JVM 空间的对象,而没有将其清除。 (你可以看到从 jade 的角度来看异常被抛出,而从我的代码端看什么都没有)

我怎样才能删除它?

我的代码由一个简单的 TickerBehaviour 类组成,如下所示:

public class MyBehaviour extends TickerBehaviour {

@Override
public void onTick() {
// Runs every second.

ACLMessage msg = new ACLMessage(ACLMessage.INFORM);
msg.setOntology(username);
msg.addReceiver(new AID(username, AID.ISLOCALNAME));
msg.setContent(<my intended message to that identifier>);
agent.send(msg);
}
}

我进一步检查了我的代码是否正在创建不必要的引用对象(通过注释最终生成我的intended message 的代码)我将其归结为删除我的所有功能并运行 jade agent,令人惊讶的是,我注意到 jade 任务本身正在造成这个问题。

我使用 visualVM 检查正在进行的堆空间检查以检查 Activity 对象的创建,以检查 JVM 堆空间中仍有多少引用对象。

旧的解决方案也无济于事。谁能帮我解决这个问题?

我已经使用了在启动 jade Container 时推荐的选项,但仍然存在未被 GC 删除的引用对象。

系统设置:

  1. 操作系统:Linux 64 位。
  2. JVM 版本:IcedTea,1.6.0.27,64 位。
  3. JVM 选项:-Xms1024m-Xmx2048m-XX:MaxPermSize=512M

提前谢谢你。

最佳答案

How can I remove this?

您似乎已将此作为内存泄漏进行调查,并得出结论认为泄漏是在 Jade 中。

如果是这种情况,那么要做的第一件事就是搜索 Jade 邮件列表和错误跟踪器,看看这是否是一个已知问题,以及是否有已知的修复或解决方法。

如果失败,您有三个选择:

  • 进一步调查并追查内存泄漏的原因,并制定解决方案。如果修复是通用的,请将其反馈给 Jade 团队。

  • 在 Jade bug tracker 上报告该 bug,并希望这会导致修复……最终。

  • 创可贴。使用更大的堆运行您的应用程序,并在出现 OOME 时重新启动它。


另一种可能性是内存泄漏在您的代码中,或者是由您的代码引起的。例如,你说:

After investigating, I find out that this is due to the collection variable that might be clogging up objects which is occupying the JVM space without flushing it out. (you can see that Exception is raised from the jade perspective and nothing from my code side)

这并不是问题出在 Jade 代码中的无懈可击的证据。这意味着当内存最终耗尽时,您正在执行一个 Jade 方法。我建议您下载 Jade 源代码并进一步调查此(假定的)内存泄漏。准确找出真正的原因,而不是将您的诊断建立在假设和错误的推论上。

请记住,Jade 是一个稳定的产品,很多人都在成功使用它......没有内存泄漏问题。

关于java - Jade : java. lang.OutOfMemoryError: Java 堆空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15736345/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com