Adakah '

Barbara Streisand
Barbara Streisandasal
2024-12-18 15:35:09809semak imbas

Is the '

Adalah Perbandingan '<' Lebih pantas daripada '<='?

Dalam senario tertentu yang melibatkan kod gelung kompleks, telah dicadangkan bahawa '<' operator mungkin lebih pantas daripada operator '<='. Untuk menyiasat dakwaan ini, mari kita periksa kod mesin asas yang dijana untuk perbandingan ini.

Penjanaan Kod

Pada seni bina x86, perbandingan integral biasanya dilaksanakan menggunakan dua arahan mesin:

  1. Arahan ujian atau cmp: Ini menetapkan daftar EFLAGS dengan pelbagai bit status yang menunjukkan hasil perbandingan.
  2. Arahan jcc (lompat): Ini menyemak EFLAGS dan cawangan sewajarnya.

Untuk kedua-dua '<' dan perbandingan '<=', arahan pertama (a cmp) adalah sama. Perbezaannya terletak pada arahan kedua:

  • '<': jge, lompat jika lebih besar daripada atau sama
  • '<=': jg, lompat jika lebih besar

Masa Pelaksanaan

Masa pelaksanaan ditentukan oleh kedua-duanya kependaman dan daya tampung. Dalam kes arahan jge dan jg, mereka mempunyai kependaman kitaran sifar yang sama dan daya pemprosesan 0.5 kitaran. Ini bermakna mereka akan mengambil masa yang sama untuk melaksanakan.

Perbandingan Titik Terapung

Prinsip yang sama digunakan untuk perbandingan titik terapung x87 menggunakan arahan fucomip. Arahan seta dan setae yang digunakan untuk menyemak daftar EFLAGS juga mengambil masa yang sama untuk dilaksanakan.

Kesimpulan

Pada kebanyakan seni bina, '<' dan operator '<=' mempunyai masa pelaksanaan yang sama untuk perbandingan kamiran dan titik terapung. Andaian bahawa '<' mungkin lebih cepat adalah tidak betul dalam kes umum.

Atas ialah kandungan terperinci Adakah '. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn