รุ่นยาว ...
เพื่อนร่วมงานยืนยันในวันนี้หลังจากเห็นการใช้งานของฉันwhile (1)
ในสคริปต์ Perl ที่for (;;)
เร็วขึ้น ฉันแย้งว่าพวกเขาควรจะเหมือนกันโดยหวังว่าล่ามจะปรับความแตกต่างให้เหมาะสม ฉันตั้งค่าสคริปต์ที่จะเรียกใช้ 1,000,000,000 สำหรับการวนซ้ำวนซ้ำและในขณะเดียวกันก็วนซ้ำและบันทึกเวลาระหว่างกัน ฉันไม่พบความแตกต่างที่เห็นคุณค่า เพื่อนร่วมงานของฉันบอกว่าศาสตราจารย์คนหนึ่งบอกเขาว่าการwhile (1)
เปรียบเทียบกำลังดำเนินการอยู่1 == 1
และfor (;;)
ไม่ใช่ เราทำการทดสอบซ้ำกับ 100x จำนวนการวนซ้ำด้วย C ++ และความแตกต่างนั้นเล็กน้อย อย่างไรก็ตามเป็นตัวอย่างที่แสดงให้เห็นว่าโค้ดที่คอมไพล์ได้เร็วขึ้นสามารถเทียบกับภาษาสคริปต์ได้
เวอร์ชั่นสั้น...
มีเหตุผลใดที่จะชอบwhile (1)
มากกว่าfor (;;)
ถ้าคุณต้องการวงวนไม่สิ้นสุดเพื่อแยกออกจากกัน?
หมายเหตุ:หากยังไม่ชัดเจนจากคำถาม นี่เป็นการสนทนาทางวิชาการที่สนุกสนานระหว่างเพื่อนสองคน ฉันรู้ว่านี่ไม่ใช่แนวคิดที่สำคัญอย่างยิ่งที่โปรแกรมเมอร์ทุกคนควรทนทุกข์ทรมาน ขอบคุณสำหรับคำตอบที่ดีทั้งหมดที่ฉัน (และฉันแน่ใจว่าคนอื่น ๆ ) ได้เรียนรู้เล็ก ๆ น้อย ๆ จากการสนทนานี้
ปรับปรุง:เพื่อนร่วมงานดังกล่าวชั่งน้ำหนักด้วยคำตอบด้านล่าง
อ้างถึงที่นี่ในกรณีที่ถูกฝังอยู่
มันมาจากโปรแกรมเมอร์แอสเซมบลีของ AMD เขาระบุว่าโปรแกรมเมอร์ C (ผู้ประพันธ์) ไม่ทราบว่ารหัสของพวกเขาไม่มีประสิทธิภาพ เขากล่าวในวันนี้ว่าคอมไพเลอร์ gcc นั้นดีมากและทำให้คนอย่างเขาทำธุรกิจ เขากล่าวว่าเช่นและบอกฉันเกี่ยวกับVS
while 1
for(;;)
ฉันใช้มันตอนนี้นิสัย แต่ gcc และโดยเฉพาะล่ามจะดำเนินการเดียวกัน (ตัวประมวลผลกระโดด) สำหรับทั้งสองวันนี้เนื่องจากพวกเขาได้รับการปรับให้เหมาะสม