API関数の実行速度 (デジタル入出力基本関数)

2022年3月11日

パソコン計測制御 PC-HELPERシリーズのデジタル入出力製品から代表的な製品を選定し当社Windows及び、Linux用ドライバが提供する基本入出力関数の平均実行時間※1を計測したデータとなります。なお、測定結果は当社が用意した環境で実測した数値であり、組み合わせるハードウェアやソフトウェア構成により実行時間が変わります。WindowsドライバAPI-DIO(WDM)が提供する一部関数は、ドライバ付属のユーティリティアプリ(実行時間計測ツール)で測定することが可能です。
評価機貸し出しサービスをご用意しておりますので、ご購入前に組み合わせる環境においてご確認いただくことをおすすめいたします。

  • ※1
    平均実行時間の計測では、関数の実行時間がOSのタスクスケジューリングにより変動するため10000回実行し、1回あたりの平均値を算出しています。

測定環境

測定環境 ①:x86_64 / Windows

プラットフォーム 型式 VPC-3100
CPU Intel Core i5-8500 (3.00GHz)
RAM 16GB
OS Windows 10 21H1 64bit
計測ソフト開発言語 Microsoft Visual C++(MFC)
 

測定環境 ②:x86_64 / Linux

プラットフォーム 型式 VPC-3100
CPU Intel Core i5-8500 (3.00GHz)
RAM 16GB
OS Ubuntu 20.04.2 LTS (64bit) 5.8.0-43-generic
計測ソフト開発言語 gcc
 

測定環境 ③:Raspberry Pi 4 / Linux

プラットフォーム 型式 Raspberry Pi 4 Model B
CPU ARM Cortex-A72 4コア (1.5GHz)
RAM 4GB
OS Raspberry Pi OS March 2021(32bit) 5.10.17-v7l+
計測ソフト開発言語 gcc
 

測定環境 ④:Jetson Nano搭載AIコンピュータ / Linux

プラットフォーム 型式 DX-U1100P1-2E0211
CPU ARM Cortex-A57 4コア (1.43GHz)
RAM 4GB
OS Ubuntu 18.04.4 LTS(64bit) 4.9.140-tegra
計測ソフト開発言語 gcc

測定結果

使用関数 [1byte単位 デジタル入力]

OS ドライバ API
Windows API-DIO(WDM) DioInpByte別ウィンドウが開きます
Linux API-DIO(LNX) DioInpByte別ウィンドウが開きます
                                                                                                                            
バス デバイス 環境① 環境② 環境③環境④
USB DIO-1616LN-USB 125.0[µsec]97.2[µsec]108.0[µsec]141.3[µsec]
DIO-0808LY-USB 165.7[µsec]151.9[µsec]197.6[µsec]226.7[µsec]
PCI Experss DIO-1616L-PE 3.1[µsec]3.5[µsec]-4.2[µsec]
Ethernet DIO-1616LN-ETH 1.5[msec]1.5[msec]1.5[msec]2.2[msec]
CPSN-MCB271-S1-041 + CPSN-DI-08L 3.6[msec]3.9[msec]3.6[msec]5.6[msec]
ワイヤレスI/O GW1-ETH-WQ + DIO-0404LY-WQ 2.3[msec]1.7[msec]2.2[msec]2.7[msec]

使用関数 [1byte単位 デジタル出力]

OS ドライバ API
Windows API-DIO(WDM) DioOutByte別ウィンドウが開きます
Linux API-DIO(LNX) DioOutByte別ウィンドウが開きます
                                                                                                                           
バス デバイス 環境① 環境② 環境③環境④
USB DIO-1616LN-USB 125.0[µsec]115.8[µsec]112.8[µsec]147.5[µsec]
DIO-0808LY-USB 165.6[µsec]127.6[µsec]187.5[µsec]209.9[µsec]
PCI Experss DIO-1616L-PE 3.1[µsec]3.5[µsec]-4.6[µsec]
Ethernet DIO-1616LN-ETH 2.5[msec]2.4[msec]2.2[msec]3.3[msec]
CPSN-MCB271-S1-041 + CPSN-DI-08L 3.8[msec]4.1[msec]3.9[msec]5.6[msec]
ワイヤレスI/O GW1-ETH-WQ + DIO-0404LY-WQ 250.6[msec]248.3[msec]246.9[msec]246.4[msec]

※出力の関数は、デバイスに出力するデータをセットした段階で処理が完了します。そのため、フォトカプラ絶縁などを採用した応答速度が遅いデバイスでは、デバイスの出力状態が変化する前に関数の処理が完了することから、連続で呼び出すと出力の状態が上書きされ外部信号が意図した状態にならない場合があります。

使用関数 [1byte単位 デジタル入力:子機入力データ参照]

OS ドライバ API
Windows API-DIO(WDM) DioInpByte別ウィンドウが開きます
Linux API-DIO(LNX) DioInpByte別ウィンドウが開きます
                        
子機入力データについて  

ワイヤレスI/O製品は、デジタル入力を行う方法が2種類あります。    
①親機が子機から定期的に取得、保持している入力データを取得。    
②子機からの最新の入力データを取得  
このデータは②の方法で取得しており、①よりも時間がかかりますがリアルタイムデータを取得することができます。なお、[1byte単位 デジタル入力]では、①の方法で取得したデータとなります。

バス デバイス 環境① 環境② 環境③環境④
ワイヤレスI/O GW1-ETH-WQ + DIO-0404LY-WQ 120.9[msec]119.5[msec]121.1[msec]121.6[msec]