• Arduino UNO ESP8266 ESP32 MicroBit IO操作速度对比记录


    ESP8266 Arduino C编程

    void setup(){
      pinMode(13, OUTPUT);
    }
    
    void loop(){
      digitalWrite(13,HIGH);
      digitalWrite(13,LOW);
      digitalWrite(13,HIGH);
      digitalWrite(13,LOW);
    
    }

    可以看到,相邻的两次digitalWrite之间是958ns(纳秒),而两次loop之间是6.6us(微秒),速度还是很快的,而Arduino UNO得到了如下结果:

    可以看到无论是loop内的,还是loop之间的间隔,都是接近的,都在3.25-3.7之间,速度比ESP8266慢几倍的水平(考虑到时序都是在loop内完成)

    下边是同样的代码ESP32得到的结果

    相比ESP8266,还是有很大进步的(综合估计得有10倍)

    下边是Micropython的:

    import machine
    
    pin13 = machine.Pin(13, machine.Pin.OUT)
    while True:
        pin13.value(1)
        pin13.value(0)
        pin13.value(1)
        pin13.value(0)

    先上ESP32的:

    嗯,Arduino水平。

    再看ESP8266:

    34us的水平。比Arduino慢一个数量级,但是ESP8266有个emit功能,现在测试一下:

    也就提高了1倍,并且不均匀,感觉像是GC占的时间。

    接下来是Microbit,Microbit支持python blockly(javasript)两种编程方式,现在分别测试:

    执行时间倒是可以的,5.37us,能差不多Arduino C语言的水平。但是loop之间就差太远了,达到了24ms,说明JavaScript系统太耗时了?

    upython得到的是一个差不多正常的方波,但是执行速度就有点太慢了,70多微秒,基本是没法模拟时序的,所以Microbit还是尽量用BLockly编程吧,虽然运行时

    需要的时间超长,但是执行速度还是可以的

  • 相关阅读:
    JavaWeb-对象增强的方式
    JavaWeb-dbcp连接池
    eclipse发送音频等大数据包到数据库的异常解决方案
    JDBC-prepareStatement预编译
    JDBC原理
    JDBC入门
    当我们说前端,我们在说什么?
    markdown上下左右,跳至行尾行首,重设快捷键
    web API简介(四):客户端储存之IndexedDB API
    过年搭出租车攻略
  • 原文地址:https://www.cnblogs.com/yafengabc/p/11197001.html
Copyright © 2020-2023  润新知