2

我以前发过这个,但我以为我已经追踪到了 NW 扩展,但是,在最新版本中仍然会发生内存泄漏。我找到了这个线程,它讨论了一个类似的问题,但将其归因于行为空间:

http://netlogo-users.18673.x6.nabble.com/Behaviorspace-Memory-Leak-td5003468.html

我发现了同样的症状。我的模型开始时大约为 650mb,但在每次运行中,私有工作集内存都会上升,达到 1024 限制。我有足够的记忆来提出这个问题,但实际上它只会延迟发作。我正在使用表格输出,根据之前的讨论,这会有所帮助,而且确实如此,但它只会减慢增长率。然而,最终内存使用量上升到 PC 开始挣扎的地步。我正在清除运行之间的所有数据,所以应该没有宿醉。我在突出显示的线程中注意到他们将无头运行。我会试试这个,但我想知道是否有其他人注意到这个问题?我的另一个选择是将 BehSpc 模拟分成几批,这样问题就不会出现,

4

1 回答 1

1

一些可能的后续步骤:

1) 隔离问题发生或不发生的确切条件。你能在不涉及 nw 扩展的情况下实现它吗?如果您从模型中删除一些代码,它仍然会发生吗?如果你继续删除代码怎么办——问题什么时候消失?仍然导致问题的最小代码是什么?几乎任何错误都可以只用少量代码来演示 - 并且发现最小的演示正是为了追踪原因并修复它所需要的。

2) 使用 JVM 的标准内存分析工具来查看哪些类型的对象正在使用内存。这可能会为可能的原因提供一些线索。

一般来说,我们没有收到来自用户的其他错误报告。多年来,人们使用 BehaviorSpace(包括无头和无头)并进行持续数小时甚至数天的实验是例行公事。所以无论你遇到什么,几乎可以肯定有一个更具体的原因——很可能,在 nw 扩展中——可能是孤立的。

于 2014-07-31T07:30:43.860 回答