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

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

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

 

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

实验时间:2017-5-25

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

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

测试表:UT71C

树莓派版本:3b

 

首先是Shell 脚本

 

 

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

 

 

 

 

 

 

 

 

 

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

 

不同语言对树莓派IO操作的速度比较_第1张图片

 

 

 

 

下面演示python

 

 

import RPi.GPIO as GPIO
GPIO.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

 

 

 

不同语言对树莓派IO操作的速度比较_第2张图片

 

 

下面是java 的代码

 


 

 

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 的频率  1.65 MHZ

 不同语言对树莓派IO操作的速度比较_第3张图片

 

 

 

 

 

 

下面是 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

 

不同语言对树莓派IO操作的速度比较_第4张图片

 

 

 

 

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

 

 

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

 

下面是C语言的频率 13.9 MHZ

 

 

不同语言对树莓派IO操作的速度比较_第5张图片

 

你可能感兴趣的:(树莓派)