Thing Done

← The fleet

ESP32-S3 vs Arduino Uno

Xtensa LX7 (ESP32-S3) at 240 MHz against ATmega328P at 16 MHz, on real hardware, same C kernels, clocks verified.

ESP32-S3 DevKit

ESP32-S3

Xtensa LX7 (ESP32-S3)
Family
Xtensa
Board
ESP32-S3 DevKit
Clock
240 MHz
float / double
32-bit / 64-bit
Arduino Uno

Arduino Uno

ATmega328P
Family
AVR
Board
Arduino Uno
Clock
16 MHz
float / double
32-bit / 32-bit
Typical gap
61.8×
ESP32-S3 faster, geometric mean of 30 cells
Biggest win for ESP32-S3
442×
uint32_t divide
Closest cell
11.9×
double modulo
Clock for clock
4.12×
ESP32-S3 needs fewer cycles per op (15.0× clock gap)

Operation by operation

Every cell

How many times faster ESP32-S3 is than Arduino Uno, operations per second. Blue: ESP32-S3 ahead. Orange: Arduino Uno ahead.

AddSubtractMultiplyDivideModulo
uint8_t 25.9× 12.7 M/s · 490 k/s 25.9× 12.7 M/s · 490 k/s 28.3× 12.7 M/s · 448 k/s 80.6× 11.5 M/s · 142 k/s 76.9× 10.9 M/s · 142 k/s
uint16_t 24.3× 12.7 M/s · 522 k/s 24.3× 12.7 M/s · 522 k/s 30.7× 12.7 M/s · 413 k/s 146× 10.1 M/s · 69.5 k/s 140× 9.72 M/s · 69.5 k/s
uint32_t 39.2× 13.4 M/s · 342 k/s 39.2× 13.4 M/s · 342 k/s 99.3× 13.4 M/s · 135 k/s 442× 11 M/s · 24.8 k/s 422× 10.5 M/s · 24.8 k/s
uint64_t 106× 7.87 M/s · 74.6 k/s 105× 7.81 M/s · 74.6 k/s 152× 5.45 M/s · 35.9 k/s 118× 1.8 M/s · 15.3 k/s 115× 1.74 M/s · 15.2 k/s
float 129× 12.7 M/s · 98.3 k/s 128× 12.7 M/s · 98.7 k/s 146× 12.7 M/s · 87 k/s 108× 3.48 M/s · 32.2 k/s 19.0× 1.95 M/s · 103 k/s
double 31.0× 3.04 M/s · 98.1 k/s 28.3× 2.79 M/s · 98.6 k/s 23.0× 2 M/s · 86.8 k/s 16.0× 516 k/s · 32.2 k/s 11.9× 1.22 M/s · 103 k/s

Where they sit in the fleet

Keep comparing

Swap sides