2022年9月25日日曜日

Raspberry Pi PicoでMicroPythonとArduino言語の実行時間を比較する

Raspberry Pi PicoはArduino IDEでも開発できるが,公式推奨のMicroPythonとどれくらい実行速度に差が出るかを検証した.


 アナログ入力の読み取り処理をMictoPythonとArduino言語で記述し,それぞれ1000回実行したときの実行時間から読み取り1回あたりの実行時間を計算した.

MicroPythonのプログラム

  1. import utime
  2. import machine
  3. adc=machine.ADC(0)
  4. time1=utime.ticks_us()
  5. for i in range(1000):
  6. a=adc.read_u16()
  7. time2=utime.ticks_us()
  8. print(utime.ticks_diff(time2,time1))


Arduino言語のプログラム

  1. void setup() {
  2. Serial.begin(9600);
  3. }
  4. unsigned long time1, time2;
  5. uint16_t a;
  6. void loop() {
  7. // put your main code here, to run repeatedly:
  8. time1=micros();
  9. for (int i=0; i < 1000; i++) {
  10. a=analogRead(26);
  11. }
  12. time2=micros();
  13. Serial.println(time2-time1);
  14. delay(5000);
  15. }

 結果は以下のようになった.参考としてArduino Everyの結果も載せている.


 最も実行時間が速いのはArduino言語で,MicroPythonの約2.5倍,Arduino Everyに対しては19倍速かった.実行時間への要求がシビアな場合は,MicroPythonよりもArduino言語を使った方が良いのかもしれない.

0 件のコメント:

コメントを投稿