Membuat Profil PHP dengan Xdebug
Dayakan pemprofilan Xdebug dan analisis output callgrind untuk mencari fungsi perlahan.
Membuat Profil PHP dengan Xdebug ialah pelajaran PHP Academy percuma di CoddyKit. Ini ialah pelajaran 1 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran PHP Academy, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus PHP Academy merangkumi sejumlah 4 pelajaran.
Apakah Xdebug?
Xdebug ialah sambungan PHP yang menyediakan keupayaan penyahpepijatan, liputan kod dan pemprofilan. Pemprofil merekodkan tempoh setiap panggilan fungsi dan bilangan kali fungsi tersebut dipanggil.
Memasang Xdebug
Pasang melalui PECL atau pengurus pakej.
# Via PECL:
$ pecl install xdebug
# Via apt:
$ apt install php-xdebug
# Verify:
$ php -v | grep XdebugMendayakan Pemprofil
Konfigurasikan Xdebug dalam php.ini untuk mendayakan pemprofilan.
# php.ini
[xdebug]
zend_extension=xdebug.so
xdebug.mode=profile
xdebug.output_dir=/tmp/xdebug
xdebug.profiler_output_name=cachegrind.out.%tPemprofilan Berasaskan Pencetus
Daripada membuat profil bagi setiap permintaan, gunakan pencetus untuk membuat profil apabila diperlukan.
# php.ini
xdebug.mode=profile
xdebug.start_with_request=trigger
# Trigger via query parameter or cookie:
curl "https://example.com/?XDEBUG_PROFILE=1"Hasil Callgrind
Xdebug menulis fail cachegrind.out.*. Format ini dibaca oleh alat visualisasi pemprofilan.
Menganalisis dengan KCachegrind / QCachegrind
Buka fail callgrind dalam KCachegrind (Linux) atau QCachegrind (macOS/Windows) untuk melihat: bilangan panggilan fungsi, jumlah masa, masa sendiri dan pepohon panggilan.
Menganalisis dengan WebGrind
WebGrind ialah pemapar callgrind berasaskan pelayar — lebih mudah disediakan berbanding alat komputer meja.
$ docker run -p 8080:80 jokkedk/webgrind -v /tmp/xdebug:/tmpMembaca Hasil Pemprofil
Cari fungsi dengan "Kos Inklusif" tertinggi (jumlah masa termasuk fungsi yang dipanggil) berbanding "Kos Sendiri" (masa dalam badan fungsi sahaja). Kos sendiri mendedahkan titik kesesakan sebenar.
Titik Kesesakan Lazim yang Ditemui
Penemuan tipikal: kueri pangkalan data N+1, ungkapan biasa yang tidak cekap, panggilan API berlebihan, hubungan Eloquent yang tidak dioptimumkan dan pemaparan paparan yang mahal.
Pemprofilan berbanding Penyahpepijatan
Pemprofilan mengukur prestasi (masa, bilangan panggilan). Penyahpepijatan (juga ciri Xdebug) menjeda pelaksanaan pada titik henti untuk pemeriksaan kod. Gunakan mod Xdebug yang berasingan.
Blackfire sebagai Alternatif
Blackfire.io ialah alat pemprofilan komersial dengan antara muka pengguna yang kemas, integrasi CI dan penegasan prestasi. Alat ini lebih sesuai untuk persekitaran pasukan berbanding pemprofilan Xdebug mentah.
Ringkasan
Dayakan mod pemprofil Xdebug dalam php.ini, cetuskan permintaan dan buka fail callgrind dalam KCachegrind atau WebGrind. Tumpukan pada fungsi dengan kos inklusif dan kos sendiri tertinggi untuk mencari titik kesesakan.
Semakan Ringkas
Apakah maksud "kos sendiri" dalam laporan pemprofil?
Pelajari PHP dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 49
- Pelajaran
- 195
Soalan Lazim
Adakah pelajaran “Membuat Profil PHP dengan Xdebug” percuma?
Ya — teks penuh “Membuat Profil PHP dengan Xdebug” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus PHP Academy, tingkat taraf kepada CoddyKit PRO. Kursus PHP Academy merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “Membuat Profil PHP dengan Xdebug”?
Dayakan pemprofilan Xdebug dan analisis output callgrind untuk mencari fungsi perlahan. Anda berlatih PHP Academy menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan PHP Academy?
Tiada pengalaman terdahulu diperlukan. Pembelajaran PHP Academy di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 1 daripada 4.
Berapa lamakah pelajaran “Membuat Profil PHP dengan Xdebug” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran PHP Academy ini?
Ya. Setiap pelajaran PHP Academy menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.
Semua pelajaran dalam kursus ini
- Membuat Profil PHP dengan Xdebug
- OPcache: Caching Kod Bait
- Mengoptimumkan Pertanyaan Pangkalan Data
- Pengurusan Memori dan Petua Prestasi