首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在BehaviorSpace运行之间保留映射

在BehaviorSpace运行之间保留映射
EN

Stack Overflow用户
提问于 2014-07-02 08:33:16
回答 1查看 165关注 0票数 1

我上传了一个*.shp文件,并将其用作我的模型的一部分(计算最短路径)。这是一个相当大的形状文件,包含数千个道路连接和交叉口,以及由节点表示的桥梁。我希望通过不是每次都加载这个地图来加速行为空间的运行,因此创建了一个单独的过程来加载地图和定义链接权重等。在这个过程中,我有清除所有重置的标记,所以如果我加载一个新的地图,所有的东西都会被有效地擦除。在设置中,我为每次运行定义了海龟属性。在每次运行之间,我使用clear-all-plots和clear-output,以及reset-ticks。当我运行这个模型时,行为空间在几次设置后开始运行缓慢,即使是表输出也是如此。但是,如果我将load-map和setup-files结合在一起,即每次运行新的行为空间时都加载map,那么整个速度都会保持不变。

示例-运行速度较慢,但并非每次都会重新加载地图

代码语言:javascript
复制
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

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

代码语言:javascript
复制
To-setup
  clear-all
  ...code for loading map
  ...code for setting up turtle variables
  reset-ticks
end

我的问题是:我是不是遗漏了一些东西,可以帮助加快速度,同时又不需要重新加载地图?

EN

回答 1

Stack Overflow用户

发布于 2014-09-03 10:22:58

我不知道关于你的模型的任何其他东西,我想知道你实际上是否有一个“内存泄漏”,大量信息累积在全局变量中,而这些信息并不是每次都被to-setup-model过程清除。是否有其他可以在to-setup-model中显式重新初始化的全局变量可以帮助腾出一些空间?例如,您有没有在运行之间挂起的大表,它们只会获得更多的键值对,而永远不会被修剪回来?这只是个想法。

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24521206

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档