Comme Christophe l'a déjà mentionné, l'une des principales différences entre les deux bibliothèques est les performances d'exécution. Alors que le MSM offre probablement le meilleur que vous pouvez obtenir ici, Statechart consciemment des métiers de la mémoire et de cycles de processeur vers une meilleure évolutivité.
Avec Boost.Statechart, vous pouvez répandre la mise en page (c'est à dire les états, les transitions) de votre machine d'état sur plusieurs unités de traduction (fichiers cpp) dans les moyens que vous ne pouvez pas avec le MSM. Cela permet de faire de la mise en œuvre de grands Smqs plus facile à gérer et beaucoup plus rapide de la compilation qu'avec le MSM.
Si oui ou non la charge des Etats par rapport aux HSH sera réellement significatif pour votre application est souvent assez facile de répondre quand vous vous demandez comment de nombreux événements de votre application aura à traiter par seconde.
En supposant que modérément complexe MPF mis en œuvre avec Boost.Statechart, voici quelques ballpark numéros:
- La plupart des PC actuels pourrez facilement faire face avec >100'000 événements par seconde
- Même très limité en ressources matérielles seront en mesure de traiter quelques centaines d'événements par seconde.
Concernant la charge CPU, si le nombre d'événements à traiter est beaucoup plus faible que ces numéros, coup de pouce.Etats généraux par rapport aux HSH aurez presque certainement pas être perceptible. Si le nombre est beaucoup plus élevé, vous êtes certainement mieux avec le MSM.
Des informations plus détaillées sur la performance/évolutivité des compromis peuvent être trouvés ici:
http://www.boost.org/doc/libs/1_45_0/libs/statechart/doc/performance.html