A simple performance comparison between microPython and CircuitPython, comparing the performance of different chips by calculating the time required for operations such as addition, multiplication, division, exponentiation, complex numbers, and pi (the smaller the value, the faster).
Reference test results
Device | Platform | Version | Frequency | Memory | Integer addition 10000 times | Integer addition 100000 times | Integer addition 1000000 times | Integer multiplication 10000 times | Integer multiplication 100000 times | Integer multiplication 1000000 times | Integer division 10000 times | Integer division 100000 times | Integer division 1000000 times | Float addition 10000 times | Float addition 100000 times | Float addition 1000000 times | Float multiplication 10000 times | Float multiplication 100000 times | Float multiplication 1000000 times | Float division 10000 times | Float division 100000 times | Float division 1000000 times | Power calculation 10000 times | Power calculation 100000 times | Power calculation 1000000 times | Mandelbrot iterating 100 times | Mandelbrot iterating 500 times | Mandelbrot iterating 5000 times | Pi Calculation 1000 bits | Pi Calculation 5000 bits | Pi Calculation 10000 bits | Pi Calculation 100000 bits | Pi Calculation 200000 bits |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
AMD 8745HS | linux | 3.13.3 | 4966.0 | 31329681408 | 0 | 3 | 36 | 0 | 4 | 41 | 1 | 3 | 38 | 0 | 3 | 31 | 0 | 3 | 32 | 1 | 3 | 36 | 1 | 5 | 48 | 8 | 36 | 343 | 1 | 11 | 50 | 7943 | 33583 |
AMD 4800U | win32 | 3.11.2 | 1800 | 16557895680 | 0 | 0 | 46 | 0 | 0 | 47 | 0 | 0 | 63 | 0 | 0 | 47 | 0 | 0 | 47 | 0 | 0 | 47 | 0 | 16 | 140 | 16 | 62 | 672 | 0 | 31 | 110 | 14218 | 59453 |
Intel 8250U | win32 | 3.12.7 | 1800.0 | 8461197312 | 0 | 0 | 78 | 0 | 15 | 94 | 0 | 0 | 78 | 0 | 16 | 47 | 0 | 15 | 47 | 0 | 0 | 63 | 0 | 16 | 188 | 15 | 94 | 828 | 0 | 31 | 140 | 22703 | 93469 |
Intel N5105 | linux | 3.12.5 | 2900.0 | 12307279872 | 1 | 7 | 78 | 1 | 8 | 79 | 1 | 8 | 79 | 1 | 8 | 70 | 1 | 7 | 70 | 1 | 7 | 77 | 2 | 13 | 120 | 17 | 69 | 662 | 1 | 35 | 150 | 23149 | 97739 |
M5Y71 | linux | 3.12.6 | 2900.0 | 8222113792 | 1 | 7 | 75 | 1 | 8 | 81 | 1 | 8 | 74 | 1 | 7 | 67 | 1 | 7 | 67 | 1 | 7 | 74 | 1 | 12 | 120 | 17 | 72 | 700 | 2 | 43 | 180 | 36916 | 222377 |
SM8250(865) | linux | 3.12.7 | 2201.6 | 12218916864 | 1 | 10 | 101 | 2 | 11 | 92 | 1 | 11 | 105 | 1 | 9 | 85 | 1 | 9 | 88 | 1 | 10 | 96 | 2 | 12 | 125 | 18 | 74 | 744 | 1 | 25 | 124 | 24251 | 100945 |
MT6895Z(8100) | linux | 3.12.7 | unknow | unkonw | 2 | 15 | 149 | 1 | 15 | 150 | 1 | 16 | 159 | 1 | 14 | 135 | 2 | 13 | 134 | 1 | 15 | 148 | 2 | 21 | 208 | 31 | 130 | 1304 | 3 | 44 | 213 | 39184 | 190532 |
MSM8998(835) | termux | 3.11.5 | 1929.6 | 3913424896 | 2 | 21 | 157 | 2 | 17 | 177 | 2 | 19 | 176 | 1 | 16 | 140 | 1 | 14 | 140 | 2 | 16 | 177 | 4 | 35 | 344 | 37 | 149 | 1436 | 4 | 45 | 238 | 47170 | 223263 |
S905L3 | linux | 3.10.12 | 2016 | 1898082304 | 8 | 73 | 727 | 7 | 75 | 746 | 7 | 70 | 699 | 7 | 67 | 675 | 7 | 67 | 674 | 7 | 69 | 684 | 8 | 84 | 841 | 125 | 506 | 4868 | 8 | 112 | 520 | 86021 | 368220 |
rpi4b | linux | 3.11.2 | 1800.0 | 8188366848 | 1 | 12 | 121 | 1 | 13 | 124 | 2 | 13 | 128 | 1 | 11 | 106 | 1 | 11 | 107 | 1 | 12 | 131 | 2 | 20 | 193 | 33 | 121 | 1154 | 3 | 47 | 216 | 36806 | 156457 |
rpi2b | linux | 3.9.2 | 900 | 966762496 | 15 | 149 | 1507 | 18 | 183 | 1829 | 14 | 142 | 1418 | 13 | 132 | 1322 | 13 | 131 | 1314 | 13 | 134 | 1340 | 19 | 188 | 1865 | 264 | 1065 | 10341 | 59 | 1317 | 5150 | 540741 | 2221524 |
imxrt1062 | MicroPython | v1.23.0 | 600 | 768384 | 11 | 109 | 1092 | 37 | 381 | 3808 | 17 | 174 | 1739 | 19 | 194 | 1940 | 19 | 195 | 1949 | 20 | 201 | 2013 | 31 | 314 | 3138 | 701 | 2597 | 23609 | 73 | 3591 | 10906 | 707552 | None |
imxrt1062 | CircuitPython | 9.1.4 | 600 | 949760 | 14 | 144 | 1454 | 46 | 453 | 4689 | 15 | 150 | 1526 | 18 | 176 | 1773 | 18 | 180 | 1798 | 18 | 180 | 1813 | 25 | 256 | 2567 | 574 | 1901 | 16591 | 77 | 1397 | 6345 | 578172 | 2395052 |
STM32H743ZI | MicroPython | v1.23.0 | 400 | 460480 | 18 | 178 | 1783 | 58 | 586 | 5868 | 24 | 246 | 2464 | 28 | 283 | 2838 | 28 | 285 | 2854 | 29 | 294 | 2938 | 54 | 541 | 5437 | 734 | 2718 | 24905 | 100 | 3979 | 12399 | None | None |
STM32F746ZG | MicroPython | v1.23.0 | 216 | 159808 | 33 | 325 | 3284 | 152 | 1523 | 15231 | 58 | 581 | 5822 | 77 | 766 | 7671 | 77 | 769 | 7693 | 75 | 749 | 7495 | 112 | 1113 | 11129 | 1814 | 6765 | 62205 | 287 | 5490 | 18080 | None | None |
STM2F746NG | MicroPython | v1.24.0.p408 | 192 | 8196480 | 37 | 378 | 3773 | 153 | 1522 | 15576 | 54 | 534 | 5423 | 69 | 689 | 6931 | 69 | 690 | 6951 | 70 | 699 | 7036 | 114 | 1141 | 11467 | 2021 | 7582 | 69766 | 203 | 5217 | 29793 | 3968801 | 12179439 |
esp32s3 | MicroPython | v1.23.0 | 240 | 244224 | 34 | 338 | 3376 | 110 | 1099 | 11005 | 49 | 488 | 4884 | 52 | 526 | 5273 | 52 | 523 | 5231 | 55 | 551 | 5508 | 80 | 801 | 8013 | 1565 | 5448 | 49099 | 389 | 6526 | 23642 | None | None |
esp32s3 | MicroPython | v1.23.0 | 240 | 8321536 | 34 | 338 | 3376 | 119 | 1190 | 11924 | 50 | 510 | 5114 | 54 | 549 | 5505 | 54 | 546 | 5465 | 56 | 574 | 5745 | 82 | 825 | 8254 | 1731 | 5863 | 51984 | 415 | 7456 | 27833 | 3456572 | 14922482 |
esp32c6 | MicroPython | v1.24.0p407 | 160 | 326144 | 48 | 481 | 4814 | 141 | 1420 | 14222 | 81 | 813 | 8134 | 72 | 732 | 7332 | 71 | 722 | 7232 | 80 | 816 | 8173 | 442 | 4422 | 44228 | 2711 | 9675 | 87640 | 526 | 8697 | 32611 | None | None |
esp32c3 | MicroPython | v1.23.0 | 160 | 203264 | 49 | 485 | 4851 | 142 | 1425 | 14260 | 85 | 863 | 8636 | 76 | 768 | 7693 | 77 | 779 | 7786 | 85 | 853 | 8538 | 739 | 7402 | 74027 | 3148 | 11291 | 102477 | 537 | 9167 | 33959 | None | None |
esp32 | MicroPython | v1.23.0 | 160 | 166592 | 61 | 611 | 6112 | 193 | 1934 | 19363 | 87 | 866 | 8669 | 95 | 946 | 9462 | 94 | 937 | 9392 | 98 | 981 | 9816 | 138 | 1391 | 13918 | 2977 | 9931 | 88060 | 660 | 11983 | 41551 | None | None |
esp32S2 | MicroPython | v1.23.0 | 160 | 137728 | 59 | 589 | 5887 | 181 | 1814 | 18161 | 99 | 1004 | 10049 | 91 | 923 | 9239 | 91 | 920 | 9196 | 107 | 1090 | 10908 | 864 | 8192 | 86523 | 6258 | 20219 | 197838 | 838 | 12530 | 44133 | None | None |
esp32S2 | MicroPython | v1.23.0 | 160 | 7797248 | 59 | 589 | 5887 | 193 | 1936 | 19374 | 102 | 1035 | 10370 | 94 | 953 | 9556 | 93 | 951 | 9517 | 110 | 1123 | 11238 | 827 | 8749 | 87498 | 6682 | 22738 | 202121 | 958 | 15703 | 59585 | 7553302 | 29965747 |
STM32F405 | MicroPython | v1.23.0 | 168 | 99328 | 56 | 564 | 5638 | 206 | 2077 | 20788 | 88 | 889 | 8896 | 105 | 1068 | 10693 | 106 | 1073 | 10739 | 106 | 1079 | 10795 | 143 | 1436 | 14372 | 2891 | 10075 | 90640 | 650 | 11485 | 40790 | None | None |
STM32F411 | MicroPython | v1.23 | 96 | 83392 | 91 | 904 | 9041 | 348 | 3493 | 34960 | 145 | 1452 | 14521 | 173 | 1741 | 17418 | 175 | 1751 | 17527 | 175 | 1755 | 17571 | 241 | 2416 | 24176 | 4791 | 16427 | 147001 | 1156 | 18073 | 67550 | None | None |
STM32F411 | CircuitPython | 9.1.4 | 96 | 83136 | 116 | 1165 | 11647 | 327 | 3275 | 32806 | 119 | 1189 | 11886 | 135 | 1350 | 13502 | 136 | 1354 | 13542 | 137 | 1372 | 13720 | 191 | 1907 | 19064 | 4335 | 13321 | 114136 | 845 | 15244 | 68559 | None | None |
STM32L476 | MicroPython | v1.23.0 | 80 | 86976 | 135 | 1351 | 13514 | 456 | 4557 | 45590 | 192 | 1912 | 19126 | 229 | 2284 | 22858 | 229 | 2292 | 22941 | 230 | 2299 | 23012 | 325 | 3249 | 32517 | 6228 | 21823 | 196753 | 1330 | 21923 | 80931 | None | None |
RP2350 | CircuitPython | 9.2.0 | 150 | 433152 | 57 | 560 | 5594 | 160 | 1614 | 16189 | 58 | 573 | 5728 | 62 | 621 | 6207 | 63 | 622 | 6213 | 63 | 632 | 6314 | 91 | 909 | 9081 | 2012 | 6078 | 51629 | 490 | 8745 | 36898 | None | None |
RP2350 | MicroPython | v1.24.0 | 150 | 486784 | 44 | 444 | 4433 | 158 | 1603 | 16052 | 63 | 646 | 6478 | 70 | 715 | 7166 | 69 | 716 | 7179 | 71 | 727 | 7280 | 96 | 985 | 9867 | 2412 | 8276 | 73979 | 322 | 20031 | 56004 | None | None |
RP2040 | CircuitPython | 9.1.4 | 125 | 179328 | 97 | 958 | 9577 | 288 | 2888 | 28907 | 116 | 1154 | 11537 | 113 | 1126 | 11249 | 113 | 1132 | 11321 | 119 | 1187 | 11866 | 290 | 2892 | 28914 | 4905 | 15548 | 134776 | 878 | 16148 | 66666 | None | None |
RP2040 | MicroPython | v1.23.0 | 125 | 233024 | 80 | 799 | 7984 | 276 | 2823 | 28283 | 126 | 1321 | 13221 | 129 | 1343 | 13447 | 129 | 1343 | 13440 | 134 | 1399 | 14002 | 993 | 9988 | 99891 | 5212 | 18820 | 171320 | 868 | 23338 | 70450 | None | None |
SAMD51 | CircuitPython | 9.1.4 | 120 | 150656 | 84 | 840 | 8400 | 274 | 2753 | 27601 | 86 | 857 | 8570 | 95 | 956 | 9563 | 96 | 958 | 9578 | 97 | 971 | 9712 | 152 | 1564 | 15653 | 4015 | 11704 | 98082 | 787 | 14479 | 60382 | None | None |
SAMD51 | MicroPython | v1.23.0 | 120 | 173120 | 71 | 710 | 7095 | 219 | 2223 | 22236 | 87 | 909 | 9113 | 101 | 1048 | 10511 | 102 | 1056 | 10540 | 103 | 1067 | 10696 | 165 | 1690 | 16945 | None | None | None | 710 | 16783 | 53817 | None | None |
SAMD21 | MicroPython | v1.23.0 | 48 | 21696 | 269 | 2687 | 26857 | 921 | 9224 | 92417 | 502 | 5020 | 50265 | 430 | 4318 | 43214 | 438 | 4405 | 44132 | 510 | 5134 | 51418 | 3567 | 35679 | 357190 | None | None | None | 3999 | None | None | None | None |
nrf52833 | micropython | unknow | 64 | 64512 | 182 | 1810 | 18098 | 582 | 5829 | 58341 | 294 | 2933 | 29342 | 289 | 2892 | 28950 | 281 | 2811 | 28133 | 319 | 3202 | 32019 | 418 | 4190 | 41907 | 11032 | 34175 | 293353 | 1977 | 37419 | None | None | None |
nRF52833 | CircuitPython | 9.1.4 | 64 | 54400 | 221 | 2210 | 22091 | 613 | 6141 | 61492 | 222 | 2224 | 22236 | 246 | 2458 | 24571 | 246 | 2449 | 24495 | 249 | 2488 | 24869 | 337 | 3375 | 33754 | None | None | None | 1888 | 36192 | None | None | None |
esp8266 | MicroPython | v1.23.0 | 80 | 38016 | 214 | 2133 | 21335 | 611 | 6114 | 61255 | 255 | 2553 | 25520 | 245 | 2444 | 24439 | 249 | 2487 | 24869 | 275 | 2743 | 27425 | 1155 | 11543 | 115434 | None | None | None | 1868 | 41057 | None | None | None |
- The time unit is milliseconds.
- The above list is not sorted by performance.
- The above results are for reference only.