- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我一直在使用 jade(Java 代理开发框架)来创建基于网络的消息传递系统。
到目前为止,我注意到 jade 运行没有问题,但有一天,我收到这条消息,
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 删除的引用对象。
系统设置:
-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/
运行 Tomcat 失败并出现 java.lang.OutOfMemoryError - 与缺少 PermGen 空间相关的错误。 我最近将 Tomcat 更改为以自己的用户(而非 root)运行。
我们有一个表,其中包含数百万行,其中包含 PostGIS 几何图形。我们要执行的查询是:落在边界几何内的最新条目是什么?这个查询的问题是我们经常会有大量的项目匹配边界框(半径大约为 5 公里),然后
我有一个Elasticsearch设置,它将允许用户搜索通配符作为索引。 array:3 [ "index" => "users" "type" => "user" "body" => arra
我创建了一个表,其中每行包含两个按钮,并且两个按钮连接在一起,我想将两个按钮分开。我用过 不起作用,css 也是,这是他们的另一种方式。 我有另一个问题,因为我不想在表格边框内显示操作按钮,而是在靠近
我试图在 jQuery Mobile 中的两个按钮之间留出空白。现实中的布局是这样的: Button 1 Button 2 (Hidden w/ display: none)
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
您好,我对图表应用程序还很陌生。现在我为我的应用程序创建了条形图。当我运行 create bar chart as separate project 时,输出如下所示。 然后当我将条形图与我的应用程序
我在使用 H2 和 GeoDB(内存中,junit)时遇到问题。 另外,使用 Hibernate 5(每个包的最新版本,包括 hibernate-spatial)和 Spring 4。 通过 id 实
我想画一张澳大利亚的 map ,并将每个城市表示为一个点。 然后突出显示人口众多(> 1M)的城市 library(sp) library(maps) data(canada.cities) head
关闭。这个问题是opinion-based .它目前不接受答案。 想改进这个问题?更新问题,以便 editing this post 提供事实和引用来回答它. 6年前关闭。 Improve this
如何保持.txt文件中存在的空格?在.txt文件中,它表示: text :text text1 :text1 text23 :text2 text345 :text3 如果我写这段
以下哪个键最大? 选项 1:16 个数字 [0,9] 选项 2:30 个元音 选项 3:字母表中的 16 个字母 选项 4:32 位 有人可以帮助我,告诉我哪一个是正确的答案以及我们如何计算它吗?我知
在 Unity 3d 中使用 Azure 空间 anchor 来实现在 iOS 和 Android 上部署的室内和室外增强现实体验是否有益? 最佳答案 是的,对于 Azure Spatial Anch
我有一个绝对定位的圆形图像。图像只需占据屏幕宽度的 17%,并且距离顶部 5 个像素。 问题是,当我调整图像大小以占据屏幕宽度的 17% 时,它会这样做,但同时容器会变长。图像本身不会拉伸(stret
我在 Ubuntu 14.04 上使用 Cassandra。从文档中,我可以看到运行命令: nodetool snapshot 创建我的 key 空间的快照。 命令的输出是: nodetool sn
Heroku引入了“私有(private)空间”,是否可以将现有应用迁移到私有(private)空间? https://blog.heroku.com/archives/2015/9/10/herok
是否允许在语义记录中使用非绑定(bind)空格 或其他 HTML 编码字符?我遇到的问题是 ; 字符被软件视为记录的结尾。 例如:假设我有一份婚姻记录,其中包含 2 个结婚者的姓氏、结婚年份以及结
我正在研究“智能 parking ”项目,偶然发现了包含我们真正需要的YouTube视频。我们已经实现了第一部分,即从视频源进行实时透视变换,下一步是将其定义为一组矩形 我基本上需要知道他是如何做到的
我有两个类:Engine 和 Trainset(多个单元),这两个类共享其 ID 空间,其中包含名称和系列 id=- . 这是我的Engine类(它是抽象的,因为有引擎的子类型(DieselEngin
如果有人能帮助我,那就太好了。 我正在尝试使用Java的Split命令,使用空格分割字符串,但问题是,字符串可能没有空格,这意味着它将只是一个简单的顺序(而不是“输入2”将是“退出”) Scanner
我是一名优秀的程序员,十分优秀!