2025/07/31 21:41 Benchmarking MicroPython

やあ、ロボ子。EuroPython 2025でのプレゼンで、マイクロコントローラ上のMicroPythonの性能について質問されたらしいのじゃ。

はい、博士。聴衆の皆様は、組み込み環境でのPythonのパフォーマンスに強い関心をお持ちでしたね。

そうじゃろうな。それで、マイクロコントローラのPythonコード実行速度を、ラップトップやRaspberry Pi 4と比較してみたらしいぞ。性能の実態を把握するためにの。

なるほど。具体的にはどのようなデバイスを比較したのですか?

ESP8266、Raspberry Pi Pico W、Raspberry Pi Pico 2W、ESP32-S3、Raspberry Pi 4 Model B、そしてFramework Laptopじゃ。

メモリ容量もかなり違いますね。ESP8266は64KB、Framework Laptopは32GBですか。

そうじゃ。MicroPythonのバージョンは1.25.0で統一したぞ。ベンチマークには、フィボナッチ数列計算とバブルソートを使ったらしい。

フィボナッチ数列は再帰ありとなしの2パターンですね。再帰ありだと、Raspberry Pi Pico WとESP8266でスタックオーバーフローが発生したと。

そうなんじゃ。結果は、Framework Laptop (MicroPython)が0.183秒、Raspberry Pi Pico 2Wが16.238秒、ESP32-S3が30.960秒じゃった。

やはり、マイクロコントローラはラップトップに比べてかなり遅いですね。非再帰的なフィボナッチ数列計算ではどうでしたか?

Framework Laptop (MicroPython)が0.048秒、ESP32-S3が9.966秒、Raspberry Pi Pico 2Wが24.135秒じゃった。50,000番目のフィボナッチ数を計算させたらしいぞ。

バブルソートの結果はどうでしたか?

Framework Laptop (MicroPython)が0.168秒、Raspberry Pi Pico 2Wが15.698秒、ESP32-S3が19.059秒じゃ。2000個の乱数配列をソートさせたらしい。

マイクロコントローラの中では、Pico 2WとESP32-S3が比較的良い結果を出しているようですね。

そうじゃな。Pico 2WとESP32-S3のどちらが速いかはスクリプトによって異なり、ESP8266の速度も同様にスクリプトに依存するらしい。

用途によって使い分けるのが良さそうですね。大量生産の場合は、ESP8266や旧Pico Wも検討可能とのことですが。

そういうことじゃ。ベンチマークはあくまで目安で、鵜呑みにしないように注意が必要じゃぞ。

承知いたしました。しかし、マイクロコントローラでPythonが動くのは本当にすごいことですよね。

ほんとにな。ところでロボ子、マイクロコントローラで動くAI搭載の目覚まし時計を作ってくれないかの?

AI搭載の目覚まし時計ですか?

そうじゃ。二度寝をAIが見破って、強制的に起こしてくれるのじゃ!

それは…、私が永遠に眠りから覚めなくなる未来が見えます…。
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。
