Thing Done

← The fleet

PIC24FJ64GU205 vs Arduino Uno

PIC24F (PIC24FJ64GU205) at 32 MHz against ATmega328P at 16 MHz, on real hardware, same C kernels, clocks verified.

PIC24FJ64GU205 Curiosity Nano

PIC24FJ64GU205

PIC24F (PIC24FJ64GU205)
Family
PIC / dsPIC
Board
PIC24FJ64GU205 Curiosity Nano
Clock
32 MHz
float / double
32-bit / 32-bit
Arduino Uno

Arduino Uno

ATmega328P
Family
AVR
Board
Arduino Uno
Clock
16 MHz
float / double
32-bit / 32-bit
Typical gap
2.07×
PIC24FJ64GU205 faster, geometric mean of 30 cells
Biggest win for PIC24FJ64GU205
8.95×
uint64_t subtract
Biggest win for Arduino Uno
6.99×
uint64_t divide
Clock for clock
1.03×
PIC24FJ64GU205 needs fewer cycles per op (2.00× clock gap)

Operation by operation

Every cell

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

AddSubtractMultiplyDivideModulo
uint8_t 2.91× 1.43 M/s · 490 k/s 2.91× 1.43 M/s · 490 k/s 2.92× 1.31 M/s · 448 k/s 3.49× 497 k/s · 142 k/s 3.49× 497 k/s · 142 k/s
uint16_t 2.19× 1.15 M/s · 522 k/s 2.19× 1.15 M/s · 522 k/s 2.77× 1.15 M/s · 413 k/s 6.98× 485 k/s · 69.5 k/s 6.98× 485 k/s · 69.5 k/s
uint32_t 2.60× 890 k/s · 342 k/s 2.60× 890 k/s · 342 k/s 4.74× 641 k/s · 135 k/s 1.38× 34.3 k/s · 24.8 k/s 1.36× 33.8 k/s · 24.8 k/s
uint64_t 7.67× 572 k/s · 74.6 k/s 8.95× 668 k/s · 74.6 k/s 3.71× 133 k/s · 35.9 k/s 1/6.99× 2.19 k/s · 15.3 k/s 1/6.96× 2.18 k/s · 15.2 k/s
float 1.35× 133 k/s · 98.3 k/s 1.23× 122 k/s · 98.7 k/s 1.93× 168 k/s · 87 k/s 2.43× 78.2 k/s · 32.2 k/s 1/1.07× 96.3 k/s · 103 k/s
double 1.32× 130 k/s · 98.1 k/s 1.21× 119 k/s · 98.6 k/s 1.87× 162 k/s · 86.8 k/s 2.39× 77.1 k/s · 32.2 k/s 1/1.09× 94.5 k/s · 103 k/s

Where they sit in the fleet

Keep comparing

Swap sides