0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

micro:bitってどのくらい1秒間に繰り返し処理をしてくれるのか開発環境で比較してみた

Posted at
MakeCodeの処理速度のおさらい

以前MakeCodeでループ処理を1秒間実施した場合に何回処理されるか、を調べてみました。

その結果、実機ベースの処理速度は1秒間に2万回弱程度となりました。
かなりのスピードです。

MakeCode以外の開発環境

MakeCodeは代表的な開発環境ですが、公式のものではmicro:bit Python Editorが提供されています。
こちらで1秒間のループ処理を計測してみました。

Geminiに書いてもらったカウントアッププログラム.py
# micro:bit Python Editor (v3) 用プログラム
from microbit import *

# 変数nをゼロにリセット
n = 0

# カウント開始時刻を設定
start_time = running_time()

# 1秒間に計測する時間 (ミリ秒)
DURATION_MS = 1000

# プログラムのメインループ
while True:
    # 現在時刻を取得
    current_time = running_time()
    
    # 経過時間を計算
    elapsed_time = current_time - start_time

    # 1秒経過したかチェック
    if elapsed_time < DURATION_MS:
        # 経過していなければ変数nにプラス1 (カウントアップ)
        n += 1
        
        # ※ ループが非常に速いため、このブロックが1秒間連続で実行されます
        
    else:
        # 1秒経過したらカウントアップを停止(メインループは継続)
        
        # 変数nの値をmicro:bitに表示
        display.scroll(n)
        
        # スクロール表示が終わった後、プログラムをフリーズさせる
        # これにより、計測と表示が完了し、無駄な処理を停止できます。
        break

# プログラムはここで終了し、計測結果が表示されたままになります
実験結果

1秒間に何回のループを回せるか、MakeCodeが圧勝でした!!!

項目 MakeCode Python Editor
シミュレーター 約900万回 約1万5千回
実機 約2万回 約3千回
開発環境の差によるスピードの差について

なぜMakeCodeの方が断トツに早いのかGeminiに聞いてみたところ下記の回答を得た。
なんと、Pythonだからといって速いわけではないのですね。

今はMakeCodeでPythonも書けるようになったのでPythonEditorを使う理由は限定的ですね。
(PythonEditorならLED表示で強制的にWaitがかからないのは素晴らしい)

項目 MakeCode (ブロック/JavaScript/Python) Python Editor (MicroPython)
実行速度 非常に速い 比較的遅い
実行方式 コンパイル型 (C++ベース) インタープリタ型
動作の仕組み 機械語に変換され、CPUが直接実行する。 実行時に一行ずつ**通訳(解釈)**しながら実行する。
メモリ効率 高い(リソース消費が少ない) 低い(インタープリタ分の消費がある)
主な利点 速度、パフォーマンス、ハードウェアに近い制御。 構文のシンプルさ、可読性、複雑なロジックの書きやすさ。
最適な用途 センサーの高速処理、リアルタイムな制御、ゲームなど。 初心者教育、プロトタイピング、複雑なデータ処理。

Geminiさんの解説

0
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?