Rumah >pembangunan bahagian belakang >tutorial php >Adakah Rujukan Laluan Sebenarnya Meningkatkan Prestasi dalam PHP?
Pass-by-Reference dan Performance in PHP: Myth Debunked
Dalam PHP, lulus parameter fungsi melalui rujukan telah menjadi subjek perdebatan , dengan beberapa spekulasi ia mungkin menjejaskan prestasi. Semasa menggunakan rujukan membenarkan fungsi mengubah suai pembolehubah di luar skopnya, ia tidak semestinya meningkatkan kelajuan.
Mekanisme Salin Pada Tulis
PHP menggunakan "Salin Pada Tulis" mekanisme untuk meminimumkan salinan objek dan tatasusunan. Hanya apabila objek ini diubah suai, ia disalin. Oleh itu, untuk fungsi yang hanya menggunakan parameter tanpa membuat perubahan, tingkah laku adalah serupa dengan rujukan lulus.
Analisis Prestasi
Untuk menjelaskan salah tanggapan, ujian prestasi telah dijalankan dengan fungsi yang sama ada membaca atau menukar parameter rentetan 20 kB. Keputusannya mengejutkan:
Parameter Pembacaan/Penggunaan Fungsi:
Fungsi Menulis/Menukar Parameter:
Inferens
Ujian mendedahkan bahawa lulus mengikut nilai adalah lebih pantas secara konsisten daripada lulus -oleh rujukan untuk kedua-dua membaca dan mengubah suai parameter. Ini menunjukkan bahawa mekanisme Copy On Write PHP tidak dipintas atau dioptimumkan untuk rujukan lulus.Kesimpulan
Bertentangan dengan kepercayaan popular, menggunakan pass-by- rujukan dalam PHP tidak meningkatkan prestasi. Untuk fungsi yang tidak mengubah nilai parameter, penyalinan boleh diabaikan. Walau bagaimanapun, jika pengubahsuaian parameter diperlukan, rujukan lulus dan nilai lulus mempunyai ciri prestasi yang hampir sama. Oleh itu, adalah penting untuk menggunakan rujukan lulus hanya apabila mengubah suai pembolehubah di luar skop fungsi, seperti yang dimaksudkan pada asalnya.Atas ialah kandungan terperinci Adakah Rujukan Laluan Sebenarnya Meningkatkan Prestasi dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!