Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

ทำไม Python จึงช้ากว่าภาษาอื่นๆ

Python เป็นภาษาสคริปต์ ในขณะที่ C เป็นภาษาโปรแกรมมิ่ง C/C++ เร็วกว่า Python อย่างค่อนข้าง เพราะเมื่อคุณรันสคริปต์ Python ตัวแปล (interpreter) จะแปลสคริปต์ทีละบรรทัดและสร้างเอาต์พุต แต่ใน C คอมไพเลอร์จะคอมไพล์ก่อนและสร้างเอาต์พุทที่เพิ่มประสิทธิภาพแล้วเกี่ยวกับฮาร์ดแวร์ ในกรณีของภาษาอื่นๆ เช่น Java และ .NET ไบต์โค้ดของ Java และไบต์โค้ดของ .NET ตามลำดับ รันเร็วกว่า Python เพราะคอมไพเลอร์ JIT คอมไพล์ไบต์โค้ดเป็นโค้ดเนทีฟในขณะรันไทม์ CPython ไม่สามารถมีคอมไพเลอร์ JIT ได้ เพราะลักษณะไดนามิกของ Python ทำให้เขียนได้ยาก

ทำไม Python จึงช้ากว่าภาษาอื่นๆ

ความแตกต่าง

ตามที่เรารู้ Python เป็นภาษาที่แปล (interpreted language) ในขณะที่ C เป็นภาษาที่คอมไพล์ (compiled language) โค้ดที่แปลจะช้ากว่าโค้ดเครื่องโดยตรงเสมอ เพราะใช้คำสั่งมากกว่ามากในการนำคำสั่งที่แปลไปปฏิบัติ เทียบกับการนำคำสั่งเครื่องจริงไปปฏิบัติ ก่อนที่งานจริงจะทำได้โดยโปรแกรม คำสั่ง Python ควรถูกเข้าใจโดย CPU ดังนั้นตัวแปล Python จะตรวจสอบแต่ละคำสั่งตามกฎของภาษา Python เช่น การจัดสรรหน่วยความจำสำหรับเก็บตัวแปร กรองช่องว่างและคอมเมนต์ออกจากโปรแกรม และงานเกี่ยวข้องอื่นๆ กระบวนการนี้ทำซ้ำสำหรับแต่ละบรรทัดของโปรแกรม และเพิ่มออเวอร์เฮดการรันโปรแกรมอย่างมีนัยสำคัญ

ทำไม Python จึงช้ากว่าภาษาอื่นๆ

C เร็ว

อีกด้านหนึ่ง C ไม่ใช้เวลามากในการตรวจสอบโค้ดต้นทางซ้ำ และแปลงเป็นคำสั่ง CPU อย่างรวดเร็ว ก่อนการรัน คอมไพเลอร์แยกต่างหากแปลงโปรแกรมภาษามนุษย์เป็นคำสั่ง CPU ตรวจสอบข้อผิดพลาด จัดสรรหน่วยความจำและตัวแปร ตัดคอมเมนต์และช่องว่าง และเพิ่มประสิทธิภาพคำสั่งที่ได้ ผลลัพธ์ของโค้ดที่คอมไพล์ถูกลิงก์เข้ากับโค้ดสำเร็จรูปอื่นๆ และผลลัพธ์คือคำสั่ง CPU ที่แข็งแรง พร้อมทำงานที่ได้รับมอบหมาย โดยไม่ต้องเตรียมการมาก ภายใน เหตุผลที่โค้ด Python รันช้ากว่าคือ โค้ดถูกแปลในขณะรันไทม์ แทนที่จะถูกคอมไพล์เป็นโค้ดเนทีฟในเวลาคอมไพล์