Arduboyで処理時間を計る

今後パフォーマンスを計ることもあるかもしれないので、処理の時間を測ってみた。
今回の目的は、時間の計り方を知ることだったので、重そうな処理を適当にグルグルと回してみた。

#include <Arduboy2.h>

Arduboy2 arduboy;

#define N 1000
static float dust;

void setup()
{
  arduboy.begin();
  arduboy.setFrameRate(60);
  arduboy.clear();
}

void loop()
{
  if (!arduboy.nextFrame()) return;
  arduboy.clear();

  uint32_t start = micros();
  for (uint16_t i = 0; i < N; i++) {
    dust = sinf(float(i) / N);
  }
  arduboy.print(micros() - start);
  arduboy.print("\n");

  start = micros();
  for (uint16_t i = 0; i < N; i++) {
    dust = acosf(float(i) / N);
  }
  arduboy.print(micros() - start);
  arduboy.print("\n");

  start = micros();
  for (uint16_t i = 0; i < N; i++) {
    dust = atanf(float(i) / N);
  }
  arduboy.print(micros() - start);
  arduboy.print("\n");

  start = micros();
  for (uint16_t i = 0; i < N; i++) {
    dust = sqrt(float(i) / N);
  }
  arduboy.print(micros() - start);
  arduboy.print("\n");

  arduboy.display();
}