*

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

関連記事

no image

C言語でEV3開発(13)-opOUTPUT_STEP_SPEEDコマンド

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

記事を読む

toppers

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

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

記事を読む

no image

C言語でEV3開発(12)-opOUTPUT_TIME_POWERコマンド

どもです。 今回のエントリーでは、これまた前回に引き続き、モーターを動かすためのコマンドについて書

記事を読む

google_test

C言語でEV3開発(6)

どもです。 今回のエントリーは、前回のエントリーの続き、google testでの単体テスト環境に

記事を読む

no image

C言語でEV3開発(4)

どもです。 今回のエントリーは、前回のエントリー内容/EclipseでEV3の実行ファイルをビルド

記事を読む

toppers

C言語でEV3開発(22)-ロギング機能

どもです。 前回は、モーターの出力を制御する方法について記載しました。その際に、モータ/車体が期待

記事を読む

no image

Objective-CからC++コードを呼び出す

どもどもです。 今回は、突然ながらMacに関係する投稿です。 ソフト関係のことを勉強していて

記事を読む

MindStormControl_SprachScreen

EV3開発サポートツール(1)-C#のユーザーコントロール開発

どもです。 突然ですが、今回はC#に関するエントリになります。 具体的には、C#/WPFで、独自

記事を読む

no image

C言語でEV3開発(11)-opOUTPUT_STEP_POWERコマンド

どもです。 今回のエントリーでは、再びモーターを動かすためのコマンドについて書きます。 コマンド

記事を読む

toppers

C言語でEV3開発(16)-TOPPERS/HRP2 EV3 で Bluetooth割込み

どもです。 今回は、EV3 の環境をTOPPERS/HRP2 EV3RT で作成したアプリをPC上

記事を読む

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

toppers
C言語でEV3開発(26)-EV3で機械学習(1)-QLearningをC#に委譲してみた

どもです。 前回の投稿では、Q-LearningをEV3本体に実装し

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

どもです。 今回の内容は、「失敗しました」という内容です。 最

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

どもです。 今回、以前から気になっていた、開発環境/プラットフォーム

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

どもです。 今回は、EV3に付属しているモーター(Lモーター/Mモー

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

どもです。 前回のエントリーで、VisualStudioCommun

→もっと見る

PAGE TOP ↑