保持BehaviorSpace之间的映射运行

时间:2014-07-02 00:33:16

标签: netlogo behaviorspace

我有一个* .shp文件,我已经上传,并且我正在使用我的模型(计算最短路径)。这是一个非常大的形状文件,包含数千个道路链接以及由节点表示的交叉点和桥梁。我希望通过每次都不加载这个地图来加快行为空间的运行,因此创建了一个单独的程序来加载地图和定义链接权重等。在这个过程中我有清除所有 - 重置滴答,所以一切都是有效的如果我加载新地图,请擦除。在设置中,我为每次运行定义了turtle属性。在每次运行之间,我使用clear-all-plots和clear-output,以及reset-ticks。当我运行此模型时,行为空间在几次设置后开始缓慢运行,即使是表输出也是如此。但是,如果我将加载映射和设置文件组合在一起,即为每个新的行为空间运行加载映射,则始终保持速度。

示例 - 运行缓慢,但每次都不会重新加载地图

to-load-map  
  Clear-all
  ... code for loading map
  reset-ticks
end

to-setup-model
  clear-all-plots
  clear-outputs
  ... code for setting up turtle variables
  reset-ticks
end

示例(保持速度 - 但必须加载地图)

To-setup
  clear-all
  ...code for loading map
  ...code for setting up turtle variables
  reset-ticks
end

我的问题:我是否遗漏了一些有助于加快速度而无需重新加载地图的内容?

1 个答案:

答案 0 :(得分:0)

我不知道你的模型有什么其他内容,我想知道你是否有一个"内存泄漏"在to-setup-model过程中每次都没有清除的全局变量中积累了大量信息。是否有其他全局变量可以在to-setup-model中明确重新初始化,这可能有助于释放部分空间?例如,在运行之间是否有大型表格,只能获得更多的键值对并且永远不会被修剪掉?只是一个想法。

我几乎总是定义一个clear-most程序来清除所有内容,除了每次都不想加载/计算的大数据。不幸的是,这意味着我必须列出变量以进行详细初始化,但我希望在运行之间尽可能多地释放以保持速度。 - 格伦