Versi panjang ...
Seorang rekan kerja menegaskan hari ini setelah melihat penggunaan saya while (1)
dalam skrip Perl yang for (;;)
lebih cepat. Saya berpendapat bahwa mereka harus sama berharap bahwa juru bahasa akan mengoptimalkan perbedaan. Saya membuat skrip yang menjalankan 1.000.000.000 untuk iterasi loop dan jumlah yang sama saat loop dan mencatat waktu antara. Saya tidak dapat menemukan perbedaan yang berarti. Rekan kerja saya mengatakan bahwa seorang profesor telah memberi tahu dia bahwa yang while (1)
melakukan perbandingan 1 == 1
dan yang for (;;)
tidak. Kami mengulangi tes yang sama dengan 100x jumlah iterasi dengan C ++ dan perbedaannya dapat diabaikan. Namun itu adalah contoh grafik tentang seberapa cepat kode terkompilasi dapat dibandingkan dengan bahasa scripting.
Versi pendek...
Apakah ada alasan untuk memilih while (1)
lebih daripada for (;;)
jika Anda membutuhkan loop tak terbatas untuk keluar?
Catatan: Jika tidak jelas dari pertanyaan. Ini murni diskusi akademik yang menyenangkan antara beberapa teman. Saya sadar ini bukan konsep super penting yang harus dipikirkan oleh semua programmer. Terima kasih atas semua jawaban hebat yang saya (dan saya yakin orang lain) telah pelajari beberapa hal dari diskusi ini.
Pembaruan: Rekan kerja yang disebutkan di atas menimbang dengan tanggapan di bawah ini.
Dikutip di sini kalau-kalau itu akan dimakamkan.
Itu datang dari programmer AMD assembly. Dia menyatakan bahwa programmer C (poeple) tidak menyadari bahwa kode mereka memiliki inefisiensi. Dia mengatakan hari ini, kompiler gcc sangat bagus, dan membuat orang seperti dia keluar dari bisnis. Dia mengatakan misalnya, dan bercerita tentang
while 1
vsfor(;;)
. Saya menggunakannya sekarang karena kebiasaan tetapi gcc dan terutama interpreter akan melakukan operasi yang sama (lompatan prosesor) untuk kedua hari ini, karena mereka dioptimalkan.