【问题标题】:Problem when collecting results from different runs in Omnetpp从 Omnetpp 中的不同运行收集结果时出现问题
【发布时间】:2021-05-03 20:06:33
【问题描述】:

从 2.X 版到 4.X 版,我能够通过我自己重新实现的 cIOutputScalarManager 成功记录标量,这使我能够将所有运行的结果存储在 cLongHistogram/cDoubleHistogram 类的相同实例中,这些实例由内部使用我对 cIOutputScalarManager 的重新实现。我正在使用 OMNeT++ 进行瞬态分析,因此我需要对许多不同运行(在大多数情况下为 100000 次运行)的结果进行平均以获得所需的图,但是在版本 5.X 中,每次运行都会从头开始重新实例化整个 cIOutputScalarManager,因此而不是来自 ALL 的结果运行,最后我只从 LAST 运行中得到结果 :( 我怎样才能让所有运行都拥有一个相同的 cIOutputScalarManager 而不是每次运行单独一个(尤其是在考虑并行执行运行时,在我的情况下不打破结果,因为实际上我需要它们的平均值)?

感谢您提供任何有助于解决此问题的想法。

【问题讨论】:

标签: omnet++


【解决方案1】:

如果您真的必须收集所有运行的统计信息(并且据我所见,您的用例证明了这一点),那么您仍然可以基于 cIOutputScalarManager 实现自己的管理器,但在内部该对象可以将所有工作委派给经理的 static 实例。即使用单例设计模式并将所有工作委托给该单个实例。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-29
    • 1970-01-01
    • 2020-06-18
    • 2010-12-28
    • 2010-12-27
    相关资源
    最近更新 更多