*

C言語でEV3開発(24)-APIの実行時間を測定してみた。

公開日: : 最終更新日:2018/02/05 C言語, マインドストーム/EV3, 開発

どもです。
今回、以前から気になっていた、開発環境/プラットフォームであるTOPPERS HRP2/EV3RTが提供する各APIの実行時間を測定してみたので、その結果の報告になります。

1.測定方法
測定方法は、シンプルにしました。
10秒間、ひたすら測定対象のAPIを実行し、実行回数をカウントします。
実行回数は、実行するたびに変化することが考えられるので、この試行を10回行います。
この10回の試行回数で得られた測定対象のAPIの実行回数の平均値を、「10秒間で測定対象のAPIが実行された回数」とします。
そして、この「実行回数」から各APIの実行時間を算出します。

2.実行結果
以下の通りです。
数字の単位は、「μ秒」です。

API実行時間

API名実行時間(μ秒/回)
ev3_motor_set_power7.936463845
ev3_motor_get_power0.206981237
ev3_motor_get_counts0.190759710
ev3_color_sensor_get_ambient3.284358080
ev3_color_sensor_get_color3.257237745
ev3_color_sensor_get_reflect3.237937227
ev3_color_sensor_get_rgb_raw3.326599188
ev3_gyro_sensor_get_angle3.259262253
ev3_gyro_sensor_get_rate3.267383378
ev3_ultrasonic_sensor_get_distance3.300713482
ev3_ultrasonic_sensor_listen3.214095738

3.実行してみて
モーターの値の取得(ev3_motor_get_power/ev3_motor_get_counts)について、センサーの値を取得するAPIに比べて10分の1以下となっています。
それに対して、モーターに値を設定するAPIの実行時間が(センサー取得のAPIと比較して)倍以上となっています。
これは、どのような違いに起因するものなのでしょう…。
うーむ…。

とりあえず、調査はココまでにしておきます。
今回の調査で得られた実行時間については、おそらく最適な実行時間となっていると思われます。
そのため、他の色々な処理を実行、また定周期処理や割込み処理が実装された場合には、この時間はもっと変わってくると思います。
しかし、1つの実行時間としての目安になれば、と思います。

4.公開しています
今回の測定で使用したソースコード、及びバイナリファイルはGitHubで公開しています。

関連記事

RasPi_Qt

QtでRaspberryPi/GUI開発(5):pigpioを使ってみた

どもです。 RaspberryPiを購入して、LEDも手に入れたのでコレをチカらせてみようと思いま

記事を読む

no image

C言語でEV3開発(14)-opOUTPUT_TIME_SPEEDコマンド

どもです。 今回のエントリーは、モーターを動かすコマンドである「opOUTPUT_TIME_SPE

記事を読む

eclipse-juno-logo

C言語でEV3開発(2)

どもです。 今回のエントリーの内容は、前回に引き続き「EV3の開発環境の構築」の追記です。

記事を読む

OpenCvLogo

RaspberryPiで物体検出(1)-白線検出への挑戦(1):輪郭検出による白線検出

どもです。 今回は、OpenCvを用いて道路の白線検出について、です。 1.今回の環境 O

記事を読む

raspberry-pi

QtでRaspberryPi/GUI開発(7):pigpioを使用したチャタリング対策の問題

どもです。 前回のエントリーで、pigpioを使用したチャタリング対策について記載しました。 今

記事を読む

no image

Windows-QtCreatorでのデバッグ

どもです。 更新の間隔が空いてしまいました。 久しぶりの更新です。 最近、Qtを触り始めま

記事を読む

raspberry-pi

libpigpioでのRaspberryPi3とArduinoのSPI通信

どもです。 今回は、libpigpioを使用してRaspberryPi3とArduinoでSPI通

記事を読む

toppers

C言語でEV3開発(25)-Q_Learningを実装してみた…が!?

どもです。 今回の内容は、「失敗しました」という内容です。 最近、流行になっている深層学習/

記事を読む

raspberry-pi

RaspberryPi3を購入しました

どもです。 突然ですが、「Raspberry Pi3 model B」を購入しました。 今回のエ

記事を読む

OpenCvLogo

OpenCvによる画像サイズ変更

どもです。 最近、カメラの動画をOpenCvで加工する、ということに挑戦し始めました。 しか

記事を読む

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

RasPi_Qt
QtでRaspberryPi/GUI開発(12)-gpioの状態をGUIに反映する

どもです。 今回は、gpioピンの状態(HIGH/LOW)の変化を画

raspberry-pi
RaspberryPi起動時にpigpiodがスタートしないようにする

どもです。 これまでpigpioを使用してRaspberryPiから

no image
自宅で電子工作(1):ブレッドボードでの配線を省略する

どもです。 突然ですが、電子工作を始めてみました。 1.背

Arduino_Logo
ホールセンサーの種類と使い方(割込み編)

どもです。 前回に引き続き、今回もホールセンサーについてです。

Arduino_Logo
ホールセンサーの種類と使い方

どもです。 今回のエントリは、表題にある「ホールセンサー」についてで

→もっと見る

PAGE TOP ↑