Prestasi MicroPython Mencetuskan Perdebatan Mengenai Kebolehgunaan Dunia Sebenar pada Mikropengawal

Pasukan Komuniti BigGo
Prestasi MicroPython Mencetuskan Perdebatan Mengenai Kebolehgunaan Dunia Sebenar pada Mikropengawal

Kajian penanda aras terkini bagi MicroPython merentasi pelbagai mikropengawal telah mencetuskan perbincangan mengenai batasan praktikal bahasa ini dan metodologi ujian. Kajian tersebut membandingkan prestasi merentasi peranti dari ESP8266 hingga Raspberry Pi Pico 2W , mendedahkan jurang prestasi yang ketara sehingga menyebabkan sesetengah pembangun mempersoalkan kesesuaian MicroPython untuk aplikasi tertentu.

Versi Perisian yang Diuji:

  • MicroPython 1.25.0 (keluaran rasmi terkini)
  • CPython 3.13 pada komputer riba
  • CPython 3.9 pada Raspberry Pi 4

Keputusan Prestasi Menimbulkan Keraguan

Keputusan penanda aras telah menarik kritikan tajam daripada komuniti pembangunan, terutamanya berkenaan masa pelaksanaan untuk algoritma biasa. Ujian bubble sort, yang melibatkan penyusunan 2,000 nombor rawak, mengambil masa lebih 80 saat pada sesetengah mikropengawal 32-bit berkelajuan 160MHz. Ini telah mendorong perbincangan hangat tentang sama ada tahap prestasi sedemikian menjadikan MicroPython tidak sesuai untuk aplikasi yang sensitif masa.

Menjana 2000 nombor rawak dan menyusunnya menggunakan bubble sort pada mcu 32bit 160Mhz mengambil 80 saat? Inilah sebabnya mengapa micropython adalah mainan.

Keputusan menunjukkan Raspberry Pi Pico 2W secara amnya mengatasi ESP32-S3 merentasi pelbagai ujian, yang mengejutkan ramai memandangkan reputasi ESP32 sebagai pilihan mikropengawal kelas tinggi.

Keputusan Ujian Penanda Aras:

  • Fibonacci (nombor ke-30): Pico 2W selesai dalam kira-kira separuh masa berbanding ESP32-S3
  • Bubble Sort (2,000 nombor): Masa pelaksanaan melebihi 80 saat pada sesetengah mikropengawal 160MHz
  • Fibonacci bukan rekursif: Prestasi yang lebih baik merentas semua peranti yang diuji

Komuniti Mempersoalkan Metodologi Ujian

Beberapa pembangun telah membangkitkan kebimbangan mengenai pendekatan dan skop penanda aras tersebut. Pengkritik berhujah bahawa membandingkan prestasi MicroPython merentasi platform perkakasan yang berbeza tidak memberikan pandangan bermakna tentang kecekapan bahasa tersebut. Mereka mencadangkan bahawa perbandingan dengan kod C yang setara yang berjalan pada mikropemproses yang sama akan menawarkan data yang lebih berharga mengenai overhed prestasi sebenar MicroPython .

Yang lain menunjukkan bahawa kajian tersebut terlepas peluang untuk menguji emitter MicroPython yang berbeza dan ciri pengoptimuman yang boleh memberi kesan ketara kepada keputusan prestasi. Sesetengah ahli komuniti menyatakan bahawa algoritma rekursif tanpa memoization yang menyebabkan stack overflow sepatutnya dijangka sebagai tingkah laku biasa dan bukannya batasan.

Perbandingan RAM Peranti:

  • ESP8266: ~80KB RAM
  • ESP32-S3: ~512KB RAM
  • Raspberry Pi Pico 2W: ~264KB RAM
  • Framework Laptop: ~32GB RAM (524,288x lebih banyak daripada ESP8266)

Implikasi Lebih Luas untuk Pembangunan Terbenam

Perbincangan melangkaui nombor prestasi mentah kepada persoalan asas mengenai peranan MicroPython dalam pembangunan terbenam. Walaupun kajian asal mengakui bahawa mikropengawal mempunyai tujuan yang berbeza daripada komputer tradisional, perdebatan komuniti mendedahkan perpecahan yang lebih mendalam mengenai pertukaran prestasi yang boleh diterima.

Contoh praktikal pengarang membina termostat tersuai dengan harga di bawah 10 euro menyerlahkan kebolehcapaian MicroPython untuk projek penggemar. Walau bagaimanapun, pembangun profesional kekal berpecah tentang sama ada kemudahan sintaks Python membenarkan penalti prestasi dalam persekitaran pengeluaran.

Perdebatan yang berterusan mencerminkan ketegangan yang lebih luas dalam pembangunan terbenam antara kemudahan penggunaan dan prestasi optimum, dengan MicroPython berada di tengah-tengah perbincangan pertukaran ini.

Rujukan: Benchmarking MicroPython