8 คะแนน โดย xguru 2021-03-31 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • ภาษาไหนเขียนโค้ดที่มีประสิทธิภาพได้ง่ายกว่ากัน

  • นำการทดสอบ membership ด้วยการค้นหาเชิงเส้นเพื่อหาค่าที่ต้องการในชุดข้อมูลจำนวนเต็มหนึ่งล้านรายการมาเขียนในทั้งสามภาษา และเปรียบเทียบกับการเขียนด้วย C

การเปรียบเทียบโดยรวม

  • ประสิทธิภาพของ Julia ใกล้เคียงกับ C แต่เมื่อเขียนโค้ดแบบเวกเตอร์ไรซ์ที่คล้ายกับ R จะช้าลง 3 เท่า

  • หากเพิ่ม JIT (Numba) ให้ Python ประสิทธิภาพของการเขียนแบบอิงลูปจะใกล้เคียงกับ Julia

  • สำหรับ Python ต้องเลือกให้เหมาะว่าจะใช้ native list หรืออาร์เรย์ของ NumPy และต้องรู้ว่าเมื่อใดควรใช้ Numba

  • R ไม่ใช่ภาษาที่เร็วที่สุด แต่ให้ผลลัพธ์ที่สม่ำเสมอกว่าเมื่อเทียบกับ Python (เมื่อเทียบกับ implementation ที่เร็วที่สุด R ช้ากว่า 24 เท่า แต่ Python ช้ากว่า 343 เท่า ส่วน Julia ช้ากว่าเพียงราว 3 เท่า)

  • Native R เร็วกว่า Native Python เสมอ

  • หากหลีกเลี่ยงการวนลูปใน Python หรือ R ไม่ได้ การวนลูปตาม element จะมีประสิทธิภาพมากกว่าการวนลูปตาม index

1 ความคิดเห็น

 
dalinaum 2021-04-02

ดูเหมือนว่าข้อเสียร้ายแรงของ Numba คือมันแสดงประสิทธิภาพได้ผลเฉพาะกับ Numpy, อาร์เรย์, ลูป ฯลฯ เท่านั้น และยังต้องใช้ decorator ทำให้โค้ดยุ่งยากขึ้น

แค่ผสม Pandas เข้าไปก็มีข้อบกพร่องด้านประสิทธิภาพแล้ว