在我的模型中,我使用行为空间来执行多次运行,每次运行时变量都会发生变化,输出存储在 *.csv 中以供以后分析。该模型在前几次迭代中运行良好,但随着数据的增长迅速变慢。我的问题是在行为空间中使用文件刷新会对此有帮助吗?或者有没有办法解决它?
干杯
西蒙
在我的模型中,我使用行为空间来执行多次运行,每次运行时变量都会发生变化,输出存储在 *.csv 中以供以后分析。该模型在前几次迭代中运行良好,但随着数据的增长迅速变慢。我的问题是在行为空间中使用文件刷新会对此有帮助吗?或者有没有办法解决它?
干杯
西蒙
确保您使用的是表格格式输出并且电子表格格式已禁用。在http://ccl.northwestern.edu/netlogo/docs/behaviorspace.html我们读到:
但是请注意,在实验完成之前,电子表格数据不会写入结果文件。由于电子表格数据在实验完成之前存储在内存中,因此非常大的实验可能会耗尽内存。所以你应该禁用电子表格输出,除非你真的想要它。
另请注意:
并行运行将相应地增加实验的内存需求。您可能需要增加 NetLogo 的内存上限(请参阅此常见问题解答条目)。
链接的常见问题条目是http://ccl.northwestern.edu/netlogo/docs/faq.html#howbig
使用file-flush
将无济于事。它将所有缓冲数据刷新到磁盘,但仅限于您自己打开的文件file-open
,并且无论如何,与文件关联的缓冲区是固定大小的,而不是随时间增长的东西。file-flush
仅当您在运行期间从另一个进程读取同一文件时才真正有用。