AnyLogic:通过复制有效地导出实验数据

问题描述

我正在做一个参数变化实验,每次迭代重复 1000 次。对于每个模型运行,我想存储 Main 中数据集的副本。我当前的设置是在每次模拟运行后,使用实验中的 After simulation run 字段和以下代码将该数据集写入 excelfile:

ds_export.fillFrom(root.ds_costAll);
excelfile.writeDataSet(ds_export,1,2,1 + i*2);

其中 i 是当前迭代的计数器。

但是,我遇到了一些性能问题。我相信 ds_costAll 的副本正在存储在我的系统内存中,期待我的实验完成,然后将其写入 excelfile。这意味着我的系统的内存利用率接近 100%,而 cpu 几乎没有受到干扰。我的系统有16gb内存,实验最大可用内存也是16gb 有没有办法更高效的导出这个数据?

解决方法

您在运行时使用了多少个内核? 工具->首选项->运行时->并行执行的进程数

可能是减少一点的选择。