Home Tools เทียบ Performance ของ Flutter vs Native vs React-Native

เทียบ Performance ของ Flutter vs Native vs React-Native

by khomkrit

เรามักมีภาพจำว่า cross-platform มักทำงานช้ากว่า Native จึงมีคนวัด performance เพื่อเปรียบเทียบประสิทธิภาพดู

performance แบ่งเป็น 3 ชนิด ได้แก่

  1. การติดต่อกับ API ของเครื่อง (เข้าถึงรูปภาพ, file system, GPS, location, และอื่นๆ)
  2. ความเร็วในการเรนเดอร์
  3. การคำนวนทางลอจิก

ในบทความนี้เป็นผลลัพธ์ของการทดสอบ performance ของการคำนวนทางลอจิกเพื่อหาค่า PI ได้ผลดังนี้

CPU-intensive test (Gauss-Legendre algorithm) for iOS

Memory-intensive test (Gauss–Legendre algorithm) for iOS

Objective-C ยังทำงานเร็วที่สุด, Flutter เร็วกว่า Swift นิดนึง ส่วน React-Native ช้ากว่า Objective-C กว่า 20 เท่า

CPU-intensive test (Borwein algorithm) for iOS

Objective-C ยังเร็วที่สุด ส่วนช้าที่สุดยังเป็น React-Native

CPU-intensive test (Gauss-Legendre algorithm) for Android

Kotlin กับ Java แทบไม่ต่างกัน ส่วน Flutter ช้ากว่านิดหน่อย และ React-Native ช้ากว่า มาก

CPU-intensive test (Borwein algorithm) for Android

Kotlin และ Java แทบไม่ต่างกันเหมือนเดิม และยังเร็วกว่า Flutter ถึง 2 เท่าตัว ส่วน React-Native ก็ช้ากว่า Native ถึง 6 เท่าเลย

Technical Detail

  1. ทุกการทดสอบทำบนเครื่องจริง (iPhone 6s, 1IS 13.2.3 และ Xiaomi Redmi Note 5, Android 9.0)
  2. วัดประสิทธิภาพใน Release Build ทั้งหมด
  3. วัดหลายๆ รอบ แล้วเอาค่ามาเฉลี่ยกัน
  4. ใช้ Gauss-Legendre & Borwein algorithm คำนวนหาค่า PI 100 ครั้งและใช้ทศนิยม 10 ล้านตำแหน่ง
  5. Gauss-Legendre เป็นอัลกอริทึมที่ใช้ memory-intensive ส่วน Borwein เป็น CPU-intensive
  6. Source Code

ที่มา: inVerita

You may also like