SBC est basé sur STM32F7, mais il existe d'autres processeurs sur le marché. Ici, nous comparons certains d'entre eux à un benchmark Python commun.
référence
Étant donné que SBC est conçu pour exécuter du code Python, nous comparons le temps d'exécution d'un code Python complet, appelé pystone.
Ce benchmark comporte plusieurs parties pour comparer différentes opérations Python comme les appels de fonction, les déclarations, les opérations de type de données, etc.
En interne, il contient moins de 300 lignes et ressemble à ceci :
Une fois exécuté, il mesure le temps d'exécution en unités de [pystones / seconde] et cette mesure peut être utilisée pour comparer différentes plates-formes.
Le code source complet se trouve ici : https://github.com/micropython/micropython-lib/blob/v1.9.3/pystone/pystone.py
Après avoir exécuté le benchmark sur différentes plates-formes, nous avons obtenu ce qui suit résultats:
Board | CPU | [pystones/sec] |
---|---|---|
PC | Intel | 200 |
OpenMVH7 | STM32H7 | 5.6 |
OpenH7 | STM32H7 | 3.6 |
Keyndrite | K210 | 2.9 |
OpenMV | STM32F7 | 2.5 |
SBC | STM32F7 | 1.9 |
RpPico | RP2040 | 1.08 |
Wemos | ESP32 | 1.04 |
Feather | NFR52 | 0.7 |
M5Stack | ESP32 | 0.66 |
NucleoL432 | STM32L4 | 0.33 |
En conclusion...
- La référence que nous pouvons tous comprendre est le résultat de la plate-forme PC, évalué à 200 [pystones/sec].
- La gamme de microcontrôleurs varie de 0.5 à 5 [pystones/sec] et le SBC atteint 1.9, il peut donc exécuter Python environ 100 fois plus lentement qu'un PC.
- Le SBC se situe également entre les appareils ESP32 et H7, il offre donc des performances moyennes par rapport aux microcontrôleurs disponibles sur le marché actuellement.