我正在做一个参数变化实验,每个迭代有1000个复制。对于这些模型运行中的每一个,我都希望存储Main中数据集的副本。我目前的设置是,在每次模拟运行后,我都会使用实验中的After simulation run
字段将该数据集写入excelfile,代码如下:
ds_export.fillFrom(root.ds_costAll);
excelfile.writeDataSet(ds_export, 1, 2, 1 + i*2);
其中,i是当前迭代的计数器。
但是,我遇到了一些性能问题。我相信ds_costAll
的副本正在我的系统内存中存储,以期待我的实验完成,并将其写入优秀者。这意味着我的系统的内存利用率接近100%,而cpu几乎没有问题。我的系统有16gb的内存,实验的最大可用内存也是16gb。有没有办法更有效地导出这些数据?
您在运行时使用了多少内核?工具->首选项->运行时->并行执行的进程数
可能是一个减少一点的选择。