*

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

関連記事

Splash

EV3開発サポートツール(3)-Ev3Controller

どもです。 今回は、以前ちらりと紹介した、Ev3のモーターの出力を調整するアプリケーションについて

記事を読む

eclipse_cdt_top_100

C言語でEV3開発(3)

どもです。 今回のエントリーの内容は、前回まででセットアップした環境で、実際にEV3上で動く実行フ

記事を読む

toppers

C言語でEV3開発(28)-EV3の移動距離を計算できるようにしてみた

(テーマ) C言語でEV3開発(28)-EV3の移動距離を計算できるようにしてみた (下書き

記事を読む

raspberry-pi

RaspberryPi3を購入しました

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

記事を読む

no image

C言語でEV3開発(9)-opOUTPUT_SPEEDコマンド

どもです。 今回のエントリーでは、前回に引き続きEV3のモーターを動かしていきます。 ただし、単

記事を読む

eclipse_oxygen

Eclipse/CrossCompile環境でプロジェクトをクリーンできない

どもです。 今回は、Eclipseでクロスコンパイル環境を作成した場合、を実行すると「指定されたフ

記事を読む

eclipse_oxygen

Linux/EclipseでRaspberryPiのクロス環境を構築してみた…がっ!

どもです。 前回のエントリでは、WindowsにRaspberryPi3のクロスコンパイル環境の構

記事を読む

toppers

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

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

記事を読む

MindStormControl_SprachScreen

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

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

記事を読む

no image

C言語でEV3開発(10)-opOUTPUT_CLEAR_COUNTコマンド

どもです。 前回のエントリーのラストで、「モーターを動かすコマンド」と書きましたが、今回紹介するコ

記事を読む

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

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

どもです。 前回のエントリーで、pigpioを使用したチャタリング対

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

どもです。 前回のエントリーで、pigpioを使用したボタンを使用し

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

どもです。 RaspberryPiを購入して、LEDも手に入れたので

RasPi_Qt
QtでRaspberryPi/GUI開発(4):イベントハンドラの設定

どもです。 前回のエントリーで、「タッチスクリーンを買った」と書きま

raspberry-pi
RaspberryPi3対応のタッチスクリーンを買いました

どもです。 ついに、念願のRaspberryPi3対応のタッチスクリ

→もっと見る

PAGE TOP ↑