今天闲着没事,测试了一下各种语言在树莓派上的运行速度
以输出高低电平为例,仅供参考
实验系统: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
下面演示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
下面是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
下面是 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