Performance
Overview
Other SAMD21-based ARM M0 boards, such as the MKRZero, Adafruit Gemma M0, Adafruit ItsyBitsy M0, and Adafruit Feather M0 Adalogger are similar in performance to the Arduino Zero.
Other SAMD51-based ARM M4 boards, such as the Adafruit ItsyBitsy M4 and Adafruit Feather M4, are similar in performance to the Adafruit Metro M4.
Other ESP8266 or ESP32-based boards are similar in performance to the Adafruit ESP8266 Feather or Adafruit ESP32 Feather respectively.
Other K210-based RISC-V boards, such as the Sipeed MAiX One Dock and Sipeed MAiX BiT, are similar in performance to the Sipeed Maixduino.
Performance
The following table gives a summary of the performance of the different versions:
8/16-bit platforms
Platform | Processor | Clock | Objects | Image | GC time | Tak | Q2 |
Arduino Uno, Arduino Nano | ATmega328 | 16 MHz | 314 | 256 | 0.5 ms | 61 s | |
Arduino Mega 2560 | ATmega2560 | 16 MHz | 1214 | 1024 | 1.9 ms | 51 s | 120 s |
Tiny Lisp Computer, Lisp Badge | ATmega1284 | 16 MHz | 2816 | 1024 | 4.8 ms | 55 s | |
Arduino Nano Every, Curiosity Nano 4809 | ATmega4809 | 20 MHz | 1066 | 64 | 1.4 ms | 49 s | 112 s |
Curiosity Nano AVR128DA48/DB | AVR128DA48/DB | 24 MHz | 2800 | 64 | 2.5 ms | 31 s | 73 s |
MSP430 F5529 LaunchPad | MSP430F5529 | 25 MHz | 1280 | 1280 | 1.3 ms | 20 s | |
MSP430 FR5969 LaunchPad | MSP430FR5969 | 16 MHz | 3072 | 1536 | 10.2 ms | 60 s | |
MSP430 FR5994 LaunchPad | MSP430FR5994 | 16 MHz | 3072 | 1536 | 6.7 ms | 45 s | |
MSP430 FR6989 LaunchPad | MSP430FR6989 | 16 MHz | 3072 | 1536 | 9.2 ms | 62 s |
32-bit platforms
Platform | Processor | Clock | Objects | Image | Code | GC time | Tak | Q2 | FFT |
Arduino Zero | ATSAMD21 | 48 MHz | 2816 | * | 128 | 2.4 ms | 12 s | 51 s | 348 ms |
Arduino MKRZero | ATSAMD21 | 48 MHz | 2816 | * | 128 | 2.4 ms | 18 s | 51 s | 446 ms |
Adafruit Gemma M0 | ATSAMD21 | 48 MHz | 2816 | * | 128 | 2.4 ms | 14 s | 41 s | 445 ms |
Adafruit ItsyBitsy M0 | ATSAMD21 | 48 MHz | 2816 | All | 128 | 2.4 ms | 15 s | 41 s | 445 ms |
Adafruit Feather M0 Adalogger | ATSAMD21 | 48 MHz | 2816 | All | 128 | 2.4 ms | 14 s | 41 s | 445 ms |
Adafruit Metro M4 Grand Central | ATSAMD51 | 120 MHz | 28672 | All | 256 | 4.6 ms | 4.2 s | 11 s | 122 ms |
Adafruit Metro M4 | ATSAMD51 | 120 MHz | 20480 | All | 256 | 3.3 ms | 4.2 s | 11 s | 122 ms |
Adafruit ItsyBitsy M4 | ATSAMD51 | 120 MHz | 20480 | All | 256 | 3.3 ms | 4.3 s | 11 s | 121 ms |
Adafruit Feather M4 | ATSAMD51 | 120 MHz | 20480 | All | 256 | 3.3 ms | 4.3 s | 11 s | 121 ms |
Adafruit PyGamer/PyBadge | ATSAMD51 | 120 MHz | 20480 | All | 256 | 3.3 ms | 4.2 s | 11 s | 121 ms |
Adafruit CLUE | nRF52840 | 64 MHz | 20992 | All | 256 | 5.8 ms | 6.7 s | 17 s | 199 ms |
Adafruit ItsyBitsy nRF52840 | nRF52840 | 64 MHz | 20992 | All | 256 | 5.8 ms | 6.7 s | 17 s | 199 ms |
BBC Micro:bit | nRF51822 | 16 MHz | 1280 | * | 64 | 2.1 ms | 35 s | 85 s | |
BBC Micro:bit V2 | nRF52833 | 64 MHz | 12800 | * | 128 | 6.8 ms | 8.3 s | 21 s | 246 ms |
Calliope mini | nRF51822 | 16 MHz | 3328 | * | 64 | 5.3 ms | 34 s | 82 s | 1110 ms |
Maxim MAX32620FTHR | MAX32620 | 96 MHz | 24576 | * | 256 | 8.7 ms | 6.6 s | 18 s | 179 ms |
Maple Mini | STM32F103 | 72 MHz | 1130 | 1280 | * | 0.7 ms | 9 s | 366 ms | |
Blue Pill | STM32F103 | 72 MHz | 1472 | 1280 | * | 0.7 ms | 9 s | ||
ESP8266 boards | ESP8266 | 160 MHz | 4000 | 512 | * | 0.4 ms | 6.4 s | 209 ms | |
ESP32 boards | ESP32 | 160 MHz | 8000 | 512 | * | 0.5 ms | 7.4 s | 23 s | 242 ms |
Sipeed MAiX RISC-V boards | K210 | 400 MHz | 80000 | * | 512 | 6.5 ms | 1.0 s | 2.6 s | 28 ms |
Teensy 4.0/4.1 | iMXRT1062 | 600 MHz | 60000 | * | 256 | 1.2 ms | 0.4 s | 1.1 s | 12 ms |
Objects gives the number of Lisp objects of storage available, each equivalent to 4 bytes on the 8/16-bit platforms and 8 bytes on the 32-bit platforms.
Image gives the number of objects that can be saved to non-volatile storage using save-image.
* These platforms don't provide non-volatile storage for saving an image, but you can save images to an SD card with a suitable interface.
Code gives the number of bytes of machine code that can be stored by the assembler, on ARM or RISC-V platforms.
* means not available.
GC time gives the time taken for a garbage collection.
Tak gives the time taken to calculate (tak 18 12 6); see Benchmarks.
Q2 gives the time taken to calculate (q2 7 8); see Benchmarks.
FFT (32-bit platforms only) gives the time taken to run the floating-point 32-point fft benchmark; see Fast Fourier Transform.