在Promela中设计模型时,当发送许多不同类型的消息时,频道的设计权衡是什么?
文档中的许多示例都使用了类似这样的简单案例
mtype { M1, M2, M3 }
chan req = [0] of { mtype, chan, byte};
然而,在实践中,某些模型可能具有处理各种不同消息类型的进程,每种消息类型都有一组唯一的参数。
因此,通道之间的设计决策似乎可以代表各种消息类型的参数:
mtype { M1, M2, M3 }
chan req = [0] of { mtype, chan, byte, int, byte, etc...};
以及特定于每种消息类型的渠道
chan req1 = [0] of { chan, byte };
chan req2 = [0] of { chan, int };
chan req3 = [0] of { chan, byte, int};
我有兴趣了解一种设计对另一种设计的性能优势,以及什么是最佳实践。