当前位置: 首页 > 知识库问答 >
问题:

Repast Simphony:在批量运行中关闭数据收集

束雅达
2023-03-14

我们一直在Repast Simphony中进行开发,现在正在尝试扩大模拟。GUI对于测试来说非常棒,但是,我们不需要那些数据集来进行更大的运行。我假设我们可以通过从GUI中删除数据集来停止数据采集,或者删除定义它们的*. xml文件,但这会使切换回小型测试变得困难。

考虑到模拟处于批处理模式,有没有办法停止Repast数据收集?差不多-

public class myBuilder implements ContextBuilder<Object> {  
    
    @Override
    public Context build(Context<Object> context) {
        // some very intelligent code
        // with excellent commenting

        if(RunEnvironment.getInstance().isBatch()) {
            // what can I put here?
            // something like this?
            AbstractDataSetManager.getInstance.clearDataSets();
        }

    } // end build()
}// end myBuilder class

有没有像RunEnvironment这样的数据集类?还是通过主上下文访问数据聚合器的方法?

共有1个答案

云宾鸿
2023-03-14

不幸的是,到了ContextBuilder的时候。build调用由于数据集已经初始化,现在删除它们已经太晚了。您可以手动从场景中删除数据集。比如xml,

?xml version="1.0" encoding="UTF-8" ?>
<Scenario simphonyVersion="2.8.0">
<repast.simphony.dataLoader.engine.ClassNameDataLoaderAction context="jzombies" file="repast.simphony.dataLoader.engine.ClassNameDataLoaderAction_0.xml" />
<!--
<repast.simphony.action.data_set context="jzombies" file="repast.simphony.action.data_set_1.xml" />
<repast.simphony.action.data_set context="jzombies" file="repast.simphony.action.data_set_2.xml" />
<repast.simphony.action.data_set context="jzombies" file="repast.simphony.action.data_set_3.xml" />
-->
<repast.simphony.action.time_series_chart context="jzombies" file="repast.simphony.action.time_series_chart_10.xml" />
<repast.simphony.action.histogram_chart context="jzombies" file="repast.simphony.action.histogram_chart_11.xml" />
<repast.simphony.action.histogram_chart context="jzombies" file="repast.simphony.action.histogram_chart_12.xml" />
<repast.simphony.action.display context="jzombies" file="repast.simphony.action.display_13.xml" />
<repast.simphony.action.display context="jzombies" file="repast.simphony.action.display_14.xml" />
<repast.simphony.action.display context="jzombies" file="repast.simphony.action.display_15.xml" />
<repast.simphony.action.display context="jzombies" file="repast.simphony.action.display_16.xml" />
<repast.simphony.action.display context="jzombies" file="repast.simphony.action.display_17.xml" />
</Scenario>

如果您保留了两个副本——一个用于批处理,另一个用于GUI,并在它们之间交换(将适当的副本复制到scenario.xml),这应该会满足您的需求。我会避免使用一个文件,并在必要时取消注释。考虑到如果在GUI中加载带有注释的数据集的场景并进行编辑和保存,那么这些数据集将不再被注释掉,但根本不会被写入,因此这并不特别健壮。

 类似资料:
  • 想改进这个问题吗?更新问题,让它只通过编辑这篇文章来关注一个问题。 我想用PHP计算MySQL中行数据的汇总。例如,如果我想检查xyz的总和:4 1 9 3 我想重复一下总和。

  • 统计支持您根据自己的业务场景需求(如考虑隐私相关条款)设置对单一设备开启或关闭数据采集。 当您判断该设备不应该进行数据采集时,可以通过设置不调用该设备的startWithAppId接口即可实现数据采集关闭

  • 统计支持您根据自己的业务场景需求(如考虑隐私相关条款)设置对单一设备开启或关闭数据采集。 当您判断该设备不应该进行数据采集时,可以通过设置不调用该设备的初始化函数,从而实现关闭该设备的数据采集。具体来说。 如果您使用的是无埋点SDK:执行屏蔽调用 StatService.autoTrace API 即可; 如果您使用的是手动埋点版本:执行屏蔽调用StatService.start API,此外,如

  • 我的做法是创建一个反应endpoint,如下所示: 这会在数据可用时立即将其发回前端,然而,我的第二个用例是在数据到达时将其汇集到一个单独的集合中,这样,如果以后有类似的请求到达,我就可以从池中卸载整个数据,而不必再次访问服务。 在不关闭流量流的情况下,我有什么选择来访问流量并在它们到达时将值存储到集合中? 遇到异常: java.lang.IllegalStateException:stream已

  • 我在块中创建了数量可变的对象。在任何退出点,我都希望关闭所有分配的资源。 我可以想象自己写一些东西来做这件事,但是有没有类似于Python的Contextlib的现有实用程序。将关闭分配的资源的ExitStack?我希望它看起来像这样: (注意:这不是这个问题,因为我不知道我会提前准备多少资源。)。 嘿,close投票者我不是在要求一个库,我是在问你如何安全地关闭动态数量的s,如果有语言功能,很好

  • 问题内容: 我有这个可运行的窗口: 我是否可以在此处设置一个计时器在1或2分钟内将其关闭,而不是单击“确定”按钮? 问题答案: 是的,诀窍是在致电之前开始使用…