SBC bazuje na STM32F7, ale na rynku są też inne procesory. Tutaj porównujemy niektóre z nich ze wspólnym benchmarkiem Pythona.
Benchmark
Ponieważ SBC jest przeznaczony do uruchamiania kodu Pythona, porównujemy czas wykonania całego kodu Pythona, znanego jako pystone.
Ten test porównawczy składa się z kilku części do porównywania różnych operacji Pythona, takich jak wywołania funkcji, deklaracje, operacje typu danych itp.
Wewnętrznie zawiera mniej niż 300 linii i wygląda tak:
Po wykonaniu mierzy czas wykonania w jednostkach [pystony / sekundę] i ta miara może być używana do porównywania różnych platform.
Pełny kod źródłowy można znaleźć tutaj: https://github.com/micropython/micropython-lib/blob/v1.9.3/pystone/pystone.py
Po uruchomieniu testu porównawczego na różnych platformach otrzymaliśmy następujące wyniki:
| Board | CPU | [pystones/sec] |
|---|---|---|
| PC | Intel | 200 |
| OpenMVH7 | STM32H7 | 5.6 |
| OpenH7 | STM32H7 | 3.6 |
| Keyndrite | K210 | 2.9 |
| OpenMV | STM32F7 | 2.5 |
| RpPico2 | RP2350 | 2.48 |
| SBC | STM32F7 | 1.9 |
| RpPico | RP2040 | 1.08 |
| Wemos | ESP32 | 1.04 |
| Feather | NFR52 | 0.7 |
| M5Stack | ESP32 | 0.66 |
| NucleoL432 | STM32L4 | 0.33 |
Podsumowując...
- Odniesieniem, które wszyscy możemy zrozumieć, jest wynik z platformy PC, oceniany na 200 [pystonów/s].
- Zakres mikrokontrolerów waha się od 0.5 do 5 [pystonów/s], a SBC osiąga 1.9, więc może działać w Pythonie około 100 razy wolniej niż na komputerze PC.
- SBC plasuje się pomiędzy urządzeniami ESP32 i H7, więc oferuje przeciętną wydajność w porównaniu do mikrokontrolerów dostępnych obecnie na rynku.