Fir*_*his 139 c++ boost state-machine boost-statechart boost-msm
显然,boost包含两个独立的状态机库:Statechart和Meta State Machine(MSM).标语给出了非常相似的描述:
你知道两者之间的主要区别和选择考虑因素是什么?
Chr*_*nry 113
由于似乎有很大的兴趣,请允许我提出我的(明显有偏见的)意见,因此应该采取一些措施:
通过查看MSM审核期间发布的评论,您可以使自己更好.这个主题在开发人员列表中进行了大量讨论.
小智 109
正如Christophe已经提到的,两个库之间的关键差异之一是运行时性能.虽然MSM可能提供了最好的功能,但Statechart可以有意识地将内存和处理器周期换成更好的可扩展性.
使用Boost.Statechart,您可以通过多种翻译单元(cpp文件)以您无法使用MSM的方式传播状态机的布局(即状态,转换).这使您可以使大型FSM的实现更易于维护,并且比使用MSM更快地编译.
当您自问每个应用每秒要处理多少事件时,状态图与MSM相比的性能开销是否真的对您的应用程序来说实际上非常重要.
假设使用Boost.Statechart实现了中等复杂的FSM,这里有几个球场数字:
关于CPU负载,如果要处理的事件数远远低于这些数,则与MSM相比,Boost.Statechart开销几乎肯定不会引人注意.如果这个数字要高得多,你肯定会更好地使用MSM.
有关性能/可伸缩性权衡的更多深入信息,请访问:http: //www.boost.org/doc/libs/1_45_0/libs/statechart/doc/performance.html
bla*_*aze 10
在编写我自己的PPP实现时,我使用状态图有三个原因:1)状态图更简单,文档更清晰; 2)我真的不喜欢UML :)
Boost文档称MSM的速度至少快20倍,但对于大型FSM来说,编译速度相当慢.
| 归档时间: |
|
| 查看次数: |
30547 次 |
| 最近记录: |