Thing Done

← The fleet

PIC16F17146 vs ESP32

PIC16F (PIC16F17146) at 32 MHz against Xtensa LX6 (ESP32) at 240 MHz, on real hardware, same C kernels, clocks verified.

PIC16F17146 Curiosity Nano

PIC16F17146

PIC16F (PIC16F17146)
Family
PIC / dsPIC
Board
PIC16F17146 Curiosity Nano
Clock
32 MHz
float / double
32-bit / 32-bit
ESP32

ESP32

Xtensa LX6 (ESP32)
Family
Xtensa
Board
ESP32
Clock
240 MHz
float / double
32-bit / 64-bit
Typical gap
241×
ESP32 faster, geometric mean of 25 cells
Biggest win for PIC16F17146
0.03×
uint8_t add
Biggest win for ESP32
2,014×
float multiply
Clock for clock
32.2×
ESP32 needs fewer cycles per op (7.50× clock gap)

Operation by operation

Every cell

How many times faster PIC16F17146 is than ESP32, operations per second. Blue: PIC16F17146 ahead. Orange: ESP32 ahead.

AddSubtractMultiplyDivideModulo
uint8_t 1/38.4× 298 k/s · 11.4 M/s 1/41.2× 277 k/s · 11.4 M/s 1/176× 64.8 k/s · 11.4 M/s 1/168× 62 k/s · 10.4 M/s 1/497× 20.1 k/s · 10 M/s
uint16_t 1/47.0× 244 k/s · 11.4 M/s 1/47.0× 244 k/s · 11.4 M/s 1/451× 25.4 k/s · 11.4 M/s 1/395× 23.6 k/s · 9.32 M/s 1/328× 27.3 k/s · 8.97 M/s
uint32_t 1/114× 105 k/s · 12 M/s 1/135× 89 k/s · 12 M/s 1/1,213× 9.9 k/s · 12 M/s 1/1,084× 9.23 k/s · 10 M/s 1/888× 10.8 k/s · 9.6 M/s
uint64_t not measurednot measurednot measurednot measurednot measured
float 1/482× 24.9 k/s · 12 M/s 1/644× 18.6 k/s · 12 M/s 1/2,014× 5.95 k/s · 12 M/s 1/690× 5.51 k/s · 3.8 M/s 1/236× 7.33 k/s · 1.73 M/s
double 1/119× 24.9 k/s · 2.96 M/s 1/144× 18.6 k/s · 2.68 M/s 1/313× 5.95 k/s · 1.86 M/s 1/83.3× 5.51 k/s · 459 k/s 1/151× 7.33 k/s · 1.11 M/s

Where they sit in the fleet

Keep comparing

Swap sides