API Function Execution Speed (Basic Digital I/O Functions)

This data is a measurement of the average execution time* of basic I/O functions provided by Contec’s Windows and Linux drivers using representative products selected from the digital I/O devices of PC-based measurement and control series, PC-HELPER. In addition, measurement values are based on actual measurements performed in the operating environment prepared by Contec. Execution times will vary depending on the hardware and software configuration. Measurement is possible using the provided utility app (execution time measurement tool) for some functions provided by the API-DIO (WDM) Windows driver.
*Because function execution times vary based on OS task scheduling, the average execution time per function is calculated from 10,000 executed functions during average execution time measurement.

Measurement Condition

Measurement condition (1):x86_64 / Windows

PC Model VPC-3100
CPU Intel Core i5-8500 (3.00GHz)
RAM 16GB
OS Windows 10 21H1 64bit
Measurement software development language Microsoft Visual C++(MFC)
 

Measurement condition (2):x86_64 / Linux

PC Model VPC-3100
CPU Intel Core i5-8500 (3.00GHz)
RAM 16GB
OS Ubuntu 20.04.2 LTS (64bit) 5.8.0-43-generic
Measurement software development language gcc
 

Measurement condition (3):Raspberry Pi 4 / Linux

PC Model Raspberry Pi 4 Model B
CPU ARM Cortex-A72 4core (1.5GHz)
RAM 4GB
OS Raspberry Pi OS March 2021(32bit) 5.10.17-v7l+
Measurement software development language gcc
 

Measurement condition (4):Jetson Nano Edge AI Computer / Linux

PC Model DX-U1100P1-2E0211
CPU ARM Cortex-A57 4Core (1.43GHz)
RAM 4GB
OS Ubuntu 18.04.4 LTS(64bit) 4.9.140-tegra
Measurement software development language gcc

Measurement Result

Use function [1byte unit digital input]

OS Driver API
Windows API-DIO(WDM) DioInpByte別ウィンドウが開きます
Linux API-DIO(LNX) DioInpByte別ウィンドウが開きます
                                                                                                                            
Bus Device condition(1) condition(2) condition(3)condition(4)
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]
Wireless I/O GW1-ETH-WQ + DIO-0404LY-WQ 2.3[msec]1.7[msec]2.2[msec]2.7[msec]

Used function [1byte unit digital output]

OS Driver API
Windows API-DIO(WDM) DioOutByte別ウィンドウが開きます
Linux API-DIO(LNX) DioOutByte別ウィンドウが開きます
                                                                                                                           
Bus Device condition(1) condition(2) condition(3)condition(4)
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]
Wireless I/O GW1-ETH-WQ + DIO-0404LY-WQ 250.6[msec]248.3[msec]246.9[msec]246.4[msec]

*Output function processing is completed when data to be output is set to the device. As such, for devices with slow response times that use opto-coupler isolation, function processing will finish before the device output status changes. Repeatedly calling functions will overwrite the output status, which could put the external signal in an unintended state.

Used function [1byte unit digital input:refer to Slave unit input data ]

OS Driver API
Windows API-DIO(WDM) DioInpByte別ウィンドウが開きます
Linux API-DIO(LNX) DioInpByte別ウィンドウが開きます
                        
Slave unit input data   

Wireless I/O products use one of two digital input methods.    
(1) Input data is obtained from master units, which periodically obtain input data from slave units.    
(2) The latest input data is obtained from slave units.  
This data has been acquired using method (2). Although this method takes longer than method (1), data can be obtained in real-time. However, with 1-byte digital input, data will be obtained by method (1).

Bus Device condition(1) condition(2) condition(3)condition(4)
Wireless I/O GW1-ETH-WQ + DIO-0404LY-WQ 120.9[msec]119.5[msec]121.1[msec]121.6[msec]

To PageTop