*

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で公開しています。

関連記事

OpenCvLogo

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

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

記事を読む

eclipse_4.3_kepler

eclipse/CDTにおけるgdbでのデバッグ中に発生するpythonのエラー

どもです。 今回のエントリーは、Eclipse上でのデバッグの際に「pythonのエンコードエラー

記事を読む

no image

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

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

記事を読む

no image

Windows-QtCreatorでのデバッグ

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

記事を読む

python

Ev3開発サポートツール(4)-Pythonによるグラフ表示

どもです。 前回のエントリーで、VisualStudioCommunityでのPythonの開発環

記事を読む

Arduino_Logo

Arduino nano(中華版)をセットアップしてみた

どもです。 突然ですが、「Arduino nano」互換(なのか?)の中華ボードを手に入れました。

記事を読む

toppers

C言語でEV3開発(19)-コマンド通信処理でEchoBackしてみた

どもです。 前回は、Bluetoothの接続状態の変化に伴う、状態遷移について書きました。 今回

記事を読む

toppers

C言語でEV3開発(23)-モーターの性能確認

どもです。 今回は、EV3に付属しているモーター(Lモーター/Mモーター)の性能について調べてみた

記事を読む

toppers

C言語でEV3開発(18)-モードの遷移の設計-コマンド通信処理の準備

 どもです。  今回は、前回紹介したEv3とBluetoothで通信する機能を

記事を読む

eclipse_oxygen

苦肉の策でLinux/EclipseでRaspberryPiのクロス環境を構築してみた

どもです。 前回のエントリでは、仮想環境(VirtaulBox)を用いたRaspberryPi3の

記事を読む

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="">

c_sharp_eye_catch
セルに「取り消し線」が設定されているかを判定してみた

どもです。 前回、前々回と、エクセルのセル内の文字列から、「取り

c_sharp_eye_catch
セル内の「取り消し線で消された文字列」の削除を簡単にしてみた

どもです。 前回、C#/OpenXmlを用いて、エクセルのセル内

c_sharp_eye_catch
セル内の「取り消し線で消された文字列」を削除してみた

どもです。 今回は、C#/OpenXmlの組み合わせで、エクセル

c_sharp_eye_catch
C#でバッファの内容を表示する処理を実装してみた-
データ型に従って動的に書式を設定する

どもです。 最近、C#でバッファ/配列の値をコンソールに表示した

arduino_relay_switch_003_self_preservation_circuit_eye_catch
Arduinoでリレースイッチ(3)-自己保存回路

どもです。 前回の記事で、リレースイッチ「AE-G5V-DRV」

→もっと見る

PAGE TOP ↑