Rumah >pembangunan bahagian belakang >tutorial php >Memaksimumkan aplikasi - php
Apabila kita sedang pengaturcaraan, tanpa mengira bahasa, terdapat konsep dan teknik yang kita boleh gunakan untuk meningkatkan kedua -dua pembacaan kod dan pemahaman dan prestasi aplikasi
Pembelajaran terbesar di sini adalah:Jangan cuba mencipta semula roda . Seperti yang saya katakan: Kajian dan penyelidikan. Kemungkinan besar, seseorang telah menghadapi masalah yang sama seperti anda dan mendapati penyelesaian yang cekap. Mengambil kesempatan daripada pengetahuan yang terkumpul oleh masyarakat bukan sahaja menjimatkan masa, tetapi juga membantu mengelakkan perangkap dan kesilapan biasa
pertanyaan dan pangkalan dataMengenai subjek ini, yang sangat penting dalam aplikasi, saya sudah menulis sedikit, ia bernilai dibaca.
Mengoptimumkan kegigihan data dan membaca pada MySQL dan AplikasiTeknik Pengoptimuman Prestasi
Selain pangkalan data dan pangkalan data, terdapat bidang asas lain untuk mengoptimumkan aplikasi. Mari kita sorot beberapa:
cache
Penggunaan cache adalah penting untuk mengurangkan beban dalam pangkalan data, sementara menyimpan data yang sering diakses. Komuniti menggunakan secara meluas Memaksimumkan aplikasi - php untuk tujuan ini
Redis adalah pangkalan data NoSQL yang sangat berprestasi tetapi tidak menentu dalam ingatan kerana ingatan tidak berterusan. Ia sesuai untuk kes -kes seperti:
Sesi Pengguna
Beberapa perkara penting apabila kita bercakap mengenai pengoptimuman penulisan kod:
tidak selalu digantikan untuk foreach akan meningkatkan prestasi. Walaupun kod mungkin menjadi lebih mudah dibaca, adalah penting untuk menguji menggunakan alat seperti *
xdebug *Operasi asli: menggunakan fungsi PHP asli seperti array_map biasanya lebih selamat dan lebih cekap daripada membuat penyelesaian tersuai. Ingat, "tidak perlu mencipta semula roda."
Kurangkan operasi gelung: Elakkan membuat gelung dalam gelung yang tidak perlu. Forech yang terletak boleh menjadi berbahaya seperti pilih *. Sebaliknya, pertimbangkan penyelesaian alternatif, seperti menulis semula logik atau menggunakan pertanyaan yang lebih cekap untuk mengurangkan kerumitan
:
Apabila pengguna membuat pembelian dalam e-dagang, adakah perlu untuk menghantar pengesahan e-mel dengan serta-merta? Banyak kali, tidak. Dalam kes ini, anda boleh menghantar e -mel ke barisan, yang akan diproses dalam lot, menjimatkan sumber dan memastikan berskala
Subprocesses : Ia bukan peluru perak, tetapi bergantung kepada keadaan boleh dilaksanakan dan ia berbaloi
Contoh
Memerlukan dan termasuk : lebih suka penggunaan autolovement untuk menguruskan kelas dan pemuatan fail. Ini bukan sahaja meningkatkan prestasi, ia mengelakkan masalah dengan kelas yang besar dan tidak perlu (megazords yang terkenal). Sebagai contoh, memuatkan kelas dengan 7,000 baris hanya untuk menggunakan kaedah pilih sangat tidak cekap. Dalam situasi ini, adalah penting untuk mempertimbangkan
refactor
Perkara pertama yang perlu anda ketahui ialah PHP adalah bahasa yang sangat ringan. Di bawah keadaan suhu dan tekanan biasa, dengan mesin yang sesuai untuk jumlah permintaan dan dengan pengoptimuman yang betul dalam kod, semuanya cenderung berfungsi dengan baik
"Tetapi Matthew, apakah mesin yang sepadan dengan jumlah permintaan?"
Saya telah mengambil bahagian dalam pelaksanaan dan pengoptimuman aplikasi kompleks yang menerima lebih daripada 6 juta permintaan sehari menggunakan, secara purata,
dua mesin dengan 2 VCPU dan 2 GB RAM setiap .
Sekarang, bercakap mengenai alat:
Ia adalah pengurus proses FastCGI untuk PHP, alternatif kepada modul PHP Apache. PHP-FPM lebih cepat, fleksibel dan digunakan secara meluas dalam pengeluaran
opcache
terus dikemas kini versi
Adalah penting untuk menyimpan pakej, alat, kerangka dan bahasa PHP yang paling banyak. Saya faham bahawa sering usaha untuk berhijrah dari versi yang lebih lama, seperti Php 7.4, kepada yang lebih baru, seperti Php 8.x, mungkin kelihatan kuat. Walau bagaimanapun, faedah dari segi prestasi, keselamatan dan sokongan adalah bernilai usaha
Beri perhatian khusus kepada konfigurasi benang dan proses kanak -kanak (proses kanak -kanak). Menetapkan nilai yang sangat tinggi untuk tetapan ini atau membolehkan penggunaan fail besar boleh membebankan mesin, yang membawa kepada kelemahan dan ketiadaan. Sentiasa menyesuaikan tetapan ini mengikut kapasiti mesin dan keperluan aplikasi sebenar
Pemantauan
Salah satu perkara yang paling penting apabila kita bercakap tentang pengoptimuman adalah untuk memahami apa yang perlu dioptimumkan. Untuk melakukan ini, alat pemantauan aplikasi yang baik (pemantauan prestasi aplikasi) dapat memberikan maklumat yang berharga, dan membolehkan tindakan pencegahan sebelum masalah menjadi kritikal
Terdapat beberapa pendekatan untuk pemantauan, dari carian log php manual ke penyelesaian automatik. Antara alat automatik, menonjol:
datadatog
Cabaran dalam menggunakan alat tangan ini adalah kerumitan yang mereka tambah, terutamanya dalam aplikasi yang mantap tanpa pasukan sokongan khusus. Penyelesaian ini memerlukan banyak konfigurasi, ujian yang ketat dan berhati -hati untuk mencegah ejen daripada memberi kesan negatif terhadap prestasi. Di samping itu, mereka memerlukan lapisan dan lapisan failover - hanya mesin redundansi sering tidak mencukupi.
Walau bagaimanapun, melaksanakan dan menguji alat ini boleh menjadi cabaran besar untuk hujung minggu!Dalam kebanyakan kes, alat seperti New Relic menawarkan titik permulaan yang hebat, memberikan keupayaan besar untuk mencegah bencana. Walau bagaimanapun, adalah penting untuk mengetahui kosnya, yang boleh menjadi penting bergantung kepada penggunaannya
Atas ialah kandungan terperinci Memaksimumkan aplikasi - php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!