服务块中的 Anylogic 测量时间
Posted
技术标签:
【中文标题】服务块中的 Anylogic 测量时间【英文标题】:Anylogic Measuring Time in a Service-block 【发布时间】:2020-09-09 11:30:14 【问题描述】:有谁知道如何测量服务块中的时间,特别是服务块队列中的平均时间? 谢谢!
【问题讨论】:
【参考方案1】:你不能直接
使用“On enter”操作记录代理中的队列进入时间(通过time()
函数)(这需要使用带有double
变量的自定义代理类型,称为serviceEntryTime
或类似)
使用 'on capture' 操作通过time() - serviceEntryTime
测量直到它离开队列(通过占用它需要的资源)之前的持续时间,并将这个值添加到一个统计对象,然后它将为您提供各种统计信息(包括平均值)通过它提供的功能。
或者将您的服务块拆分为 TimeMeasureStart -- Seize -- TimeMeasureEnd -- Delay -- Release 序列。 TimeMeasureEnd 块有一个内置的直方图数据对象,它将通过blockName.distribution.mean()
为您提供平均值。
【讨论】:
谢谢!我试图实施你的第二个建议,但现在它说它“无法将双精度转换为 historgramdata。你知道我该如何解决吗? 我的“第二个建议”是什么意思?它们都不涉及向 HistogramData 对象显式添加条目,因此您所说的错误不会发生。您可能需要准确说明您实现了什么。以上是关于服务块中的 Anylogic 测量时间的主要内容,如果未能解决你的问题,请参考以下文章