Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Ringkasan Soalan Temuduga PHP Pusingan Segar

Ringkasan Soalan Temuduga PHP Pusingan Segar

藏色散人
藏色散人ke hadapan
2021-07-27 16:33:143461semak imbas

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!

Kenyataan:
Artikel ini dikembalikan pada:learnku.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam