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
Xtensa LX7 (ESP32-S3)
- Family
- Xtensa
- Board
- ESP32-S3 DevKit
- Clock
- 240 MHz
- float / double
- 32-bit / 64-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.
| Add | Subtract | Multiply | Divide | Modulo | |
|---|---|---|---|---|---|
| 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 |