不同语言对树莓派IO操作的速度比较

来源:互联网 发布:梦璟saya 知乎 编辑:程序博客网 时间:2024/06/04 00:22

今天闲着没事,测试了一下各种语言在树莓派上的运行速度

以输出高低电平为例,仅供参考

 

实验系统:2016-11-25-raspbian-jessie-lite

实验时间:2017-5-25

系统要求:系统已经默认好安装python环境,手动安装wiringPi,安装java

测试语言:shell脚本,Python,java,C 依次进行测试.

测试表:UT71C

 

首先是Shell 脚本

#!/bin/bashgpio mode 1 output while [ 1 ]        do        gpio write 1 1        gpio write 1 0        done




下图是频率,非常低只有192.2 HZ





下面演示python

 

import RPi.GPIO as GPIOGPIO.setmode(GPIO.BOARD)GPIO.setwarnings(False)GPIO.setup(12, GPIO.OUT)while True:        GPIO.output(12, GPIO.HIGH)        GPIO.output(12, GPIO.LOW)


 

使用python 的频率为 321.6 KHZ





下面是java 的代码

 


 下面是运行java 的频率  1.65 MHZ

 




import com.pi4j.io.gpio.GpioController;import com.pi4j.io.gpio.GpioFactory;import com.pi4j.io.gpio.GpioPinDigitalOutput;import com.pi4j.io.gpio.PinState;import com.pi4j.io.gpio.RaspiPin; public class pi {        public static void main(String[] args) {                GpioController gpio = GpioFactory.getInstance();                GpioPinDigitalOutput output =     gpio.provisionDigitalOutputPi;        while(true){                output.high();                output.low();        }        }}




下面是 java 使用wiringpiSet模式

 

import com.pi4j.wiringpi.Gpio; public class pi {     public static void main(String args[]) throws InterruptedException {                 if (Gpio.wiringPiSetup() == -1) {            System.out.println(" ==>> GPIO SETUP FAILED");            return;        }           while(true){ Gpio.pinMode(1, Gpio.OUTPUT);            Gpio.digitalWrite(1, 1);            Gpio.digitalWrite(1, 0);         }    }}


下面是频率大小:2.40 MHZ





下面是终极大佬登场,也就是c语言,看看有多溜

 

#include<wiringPi.h> int main(){        wiringPiSetup () ;         pinMode(1,OUTPUT);        while(1)        {        digitalWrite (1, HIGH);        digitalWrite (1, LOW);        }        return 0;}


 

 

下面是C语言的频率 13.9 MHZ




原创粉丝点击