R เทียบกับ Python เทียบกับ Julia
(towardsdatascience.com)-
ภาษาไหนเขียนโค้ดที่มีประสิทธิภาพได้ง่ายกว่ากัน
-
นำการทดสอบ 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 ความคิดเห็น
ดูเหมือนว่าข้อเสียร้ายแรงของ Numba คือมันแสดงประสิทธิภาพได้ผลเฉพาะกับ Numpy, อาร์เรย์, ลูป ฯลฯ เท่านั้น และยังต้องใช้ decorator ทำให้โค้ดยุ่งยากขึ้น
แค่ผสม Pandas เข้าไปก็มีข้อบกพร่องด้านประสิทธิภาพแล้ว