Rumah > Artikel > pembangunan bahagian belakang > Ringkasan Soalan Temuduga PHP Pusingan Segar
Cadangan berkaitan: "Ringkasan soalan temuduga PHP 2021 (koleksi) "
Ringkasan temuduga PHP masalahnya
Mekanisme pengumpulan sampah
Setiap pembolehubah PHP wujud dalam struktur yang dipanggil zval, yang sebagai tambahan kepada jenis dan nilai pembolehubah, juga termasuk is_ref ( =pembolehubah penunjuk benar, -pembolehubah biasa palsu), pengiraan semula (nombor yang menunjuk kepada pembolehubah ini), apabila memadamkan elemen menyebabkan pengiraan semula=0, pembolehubah ini dipadamkan oleh mekanisme pengumpulan sampah
Operasi berikut akan menyebabkan refcount to never be ialah 0, yang boleh menyebabkan limpahan memori
$a = array( 'one' ); $a[] =& $a; unset($a);
Apabila kiraan semula berkurangan sebanyak satu, pembolehubah diletakkan di kawasan penampan dan menunggu pemprosesan kitar semula berkala Apabila kawasan penimbal akar penuh (. lalai 10000), Akan melaksanakan algoritma kitar semula
Penalaan FPM
pm = dynamic : 灵活模式,子进程的数量是根据以下指令来动态生成的,默认是这个模式: pm.max_children,//最大子进程数 pm.start_servers,//初始化启动进程数 pm.min_spare_servers,//最低闲置进程数 pm.max_sqare_servers//最高闲置进程数
pm = ondemand: mod ikan mati, mod ini hanya akan memulakan proses anak selepas permintaan datang, hampir Setiap kali anda perlu menunggu masa untuk memulakan pekerja, ia lebih sesuai untuk mod hos maya pm.process_idle_timeout membunuh proses anak selepas beberapa saat
pm = statik: Mod kuasa kuda maksimum. bilangan proses kanak-kanak ditentukan oleh arahan pm.max_children Untuk memastikan, ia sentiasa beroperasi dengan proses anak maksimum, yang menggunakan banyak memori, tetapi tindak balasnya sangat cepat Jika memori pelayan sangat besar, anda boleh gunakan ini. Jika pelayan anda mempunyai lebih daripada 8G, satu proses dikira sebagai 20M, dan jumlah 100 proses hanyalah 2G
Menulis lebih banyak log
Lambat. log
slowlog = /usr/local/var/log/php-fpm.log.slow request_slowlog_timeout = 15s
Log ralat
error_log = /usr/local/var/log/php-fpm.log
Log akses
access.log = log/$pool.access.log
OPCACHE 代码=>AST抽象语法树=>生成opcode缓存 之后还可以优化 opcache.enable=1 //默认关闭 opcache.memory_consumption=512//最大内存空间,单位MB opcache.interned_strings_buffer=64 opcache.max_accelerated_files=32531//缓存脚本数量
opcache.validate_timestamps=0//0不校验文件变动,文件改动,需要手动清除opcache opcache.validate_timestamps=0//1校验文件变动, opcache.revalidate_freq=10 //校验文件的时间间隔 opcache.save_comments=1//保留注释,?注解要用到? opcache.fast_shutdown=0 ##PHP7.4+ 预加载文件 opcache.preload=/home/rawphp/preload.php opcache.preload_user=odin
CGI, FASTCGI, PHPFPM, PHPCGI
CGI ialah protokol yang menentukan format data yang dihantar oleh pelayan kepada skrip dinamik
FASTCGI meningkatkan prestasi CGI, memulakan proses induk, menghuraikan fail php.ini dan terus menyalin proses pekerja apabila permintaan masuk. Permintaan boleh diproses serta-merta, dan pekerja pm.start_servers juga boleh dimulakan lebih awal untuk meningkatkan prestasi
PHPFPM ialah program yang melaksanakan FASTCGI
PHPCGI hanyalah pengendali CGI yang hanya menghuraikan permintaan dan mengembalikan hasilnya, tanpa fungsi lanjutan seperti pengurusan proses.
Atas ialah kandungan terperinci Ringkasan Soalan Temuduga PHP Pusingan Segar. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!