基于仿真的性能分析:CPN 工具的应用与实践
1. 从最终标记收集数据
在仿真过程中,监控器起着关键作用,它不仅有用于从 CPN 模型初始标记收集数据的起始函数,还有能从最终标记收集数据的停止函数。不过,停止函数不能用于从绑定元素收集数据。
以协议系统的吞吐量为例,它指的是协议系统在单位时间内交付的正确(非重复)数据包数量。为了计算这个性能指标,我们实现了一个名为 Throughput 的用户自定义数据收集监控器,其停止函数如下:
fun stop () =
let
val received
= Real.fromInt
(DataPacketDelay.count());
val modeltime = Real.fromInt (ModelTime());
in
SOME (received / modeltime)
end;
该监控器无需从位置标记收集数据,因此停止函数没有参数。通过 DataPacketDelay.count() 函数获取仿真期间接收到的正确数据包数量, ModelTime() 函数返回从仿真开始到结束所经过的模型时间。在进行除法运算前,使用 Real.fromInt 函数将观测数量和模型时间转换为实数,最后使用 SOME 构造函数返回数据值。
再看接收器利用率的计算,对应的监控器为 ReceiverUtilisation。接收器在 ReceivePacket 转换发生时开始忙碌,我们可以通过将 ReceivePacket
超级会员免费看
订阅专栏 解锁全文
389

被折叠的 条评论
为什么被折叠?



