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

จะทำให้ลูปทำงานเร็วขึ้นโดยใช้ Python ได้อย่างไร


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

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

อย่าใช้คำสั่ง len(list) ในลูปหรือแม้กระทั่งในสภาวะเริ่มต้น

ตัวอย่าง

a = [i for i in range(1000000)]
length = len(a)
for i in a:
   print(i - length)

เร็วกว่ามาก

a = [i for i in range(1000000)]
for i in a:
   print(i - len(a))

คุณยังสามารถใช้เทคนิคเช่น Loop Unrolling(https://en.wikipedia.org/wiki/Loop_unrolling) ซึ่งเป็นเทคนิคการแปลงลูปที่พยายามปรับความเร็วในการดำเนินการของโปรแกรมให้เหมาะสมโดยเสียขนาดไบนารีซึ่งเป็นแนวทางที่เรียกว่า การแลกเปลี่ยนกาลอวกาศ

การใช้ฟังก์ชันต่างๆ เช่น แผนที่ ตัวกรอง ฯลฯ แทนที่จะใช้การวนซ้ำอย่างโจ่งแจ้งอาจช่วยปรับปรุงประสิทธิภาพบางอย่างได้