Sebuah studi benchmarking terbaru tentang MicroPython di berbagai mikrokontroler telah memicu diskusi mengenai keterbatasan praktis bahasa tersebut dan metodologi pengujiannya. Studi ini membandingkan performa di berbagai perangkat mulai dari ESP8266 hingga Raspberry Pi Pico 2W, mengungkap kesenjangan performa yang signifikan dan membuat beberapa developer mempertanyakan kesesuaian MicroPython untuk aplikasi tertentu.
Versi Perangkat Lunak yang Diuji:
- MicroPython 1.25.0 (rilis resmi terbaru)
- CPython 3.13 pada laptop
- CPython 3.9 pada Raspberry Pi 4
Hasil Performa Mengundang Kekhawatiran
Hasil benchmark telah menarik kritik tajam dari komunitas developer, terutama terkait waktu eksekusi untuk algoritma-algoritma umum. Tes bubble sort, yang melibatkan pengurutan 2.000 angka acak, membutuhkan waktu lebih dari 80 detik pada beberapa mikrokontroler 32-bit 160MHz. Hal ini telah memicu diskusi sengit tentang apakah tingkat performa seperti ini membuat MicroPython tidak cocok untuk aplikasi yang sensitif terhadap waktu.
Generate 2000 random numbers and sorting them using bubble sort on 160Mhz 32bit mcu takes 80 seconds ? This is exactly why micropython is a toy.
Hasil menunjukkan Raspberry Pi Pico 2W secara umum mengungguli ESP32-S3 di berbagai tes, yang mengejutkan banyak orang mengingat reputasi ESP32 sebagai pilihan mikrokontroler kelas atas.
Hasil Tes Benchmark:
- Fibonacci (angka ke-30): Pico 2W selesai dalam waktu sekitar setengah dari waktu ESP32-S3
- Bubble Sort (2.000 angka): Waktu eksekusi melebihi 80 detik pada beberapa mikrokontroler 160MHz
- Fibonacci non-rekursif: Performa lebih baik di semua perangkat yang diuji
Komunitas Mempertanyakan Metodologi Pengujian
Beberapa developer telah menyuarakan kekhawatiran tentang pendekatan dan cakupan benchmark tersebut. Kritikus berargumen bahwa membandingkan performa MicroPython di berbagai platform hardware yang berbeda tidak memberikan wawasan yang bermakna tentang efisiensi bahasa tersebut. Mereka menyarankan bahwa perbandingan dengan kode C yang setara yang berjalan pada mikroprosesor yang sama akan memberikan data yang lebih berharga tentang overhead performa MicroPython yang sebenarnya.
Yang lain menunjukkan bahwa studi tersebut melewatkan kesempatan untuk menguji berbagai emitter MicroPython dan fitur optimasi yang dapat berdampak signifikan pada hasil performa. Beberapa anggota komunitas mencatat bahwa algoritma rekursif tanpa memoization yang menyebabkan stack overflow seharusnya merupakan perilaku yang diharapkan daripada sebuah keterbatasan.
Perbandingan RAM Perangkat:
- ESP8266 : ~80KB RAM
- ESP32-S3 : ~512KB RAM
- Raspberry Pi Pico 2W : ~264KB RAM
- Framework Laptop : ~32GB RAM (524.288x lebih besar dari ESP8266 )
Implikasi yang Lebih Luas untuk Pengembangan Embedded
Diskusi ini meluas melampaui angka performa mentah ke pertanyaan fundamental tentang peran MicroPython dalam pengembangan embedded. Meskipun studi asli mengakui bahwa mikrokontroler melayani tujuan yang berbeda dari komputer tradisional, perdebatan komunitas mengungkap perpecahan yang lebih dalam tentang trade-off performa yang dapat diterima.
Contoh praktis penulis tentang membangun termostat kustom dengan biaya di bawah 10 euro menyoroti aksesibilitas MicroPython untuk proyek-proyek hobbyist. Namun, developer profesional tetap terbagi tentang apakah kemudahan sintaks Python membenarkan penalti performa dalam lingkungan produksi.
Perdebatan yang sedang berlangsung mencerminkan ketegangan yang lebih luas dalam pengembangan embedded antara kemudahan penggunaan dan performa optimal, dengan MicroPython berada di pusat diskusi trade-off ini.
Referensi: Benchmarking MicroPython