Jadual Kandungan
HugePage
Cache fail Opcache" >Cache fail Opcache
Selepas pengoptimuman" >Selepas pengoptimuman
Rumah pembangunan bahagian belakang PHP7 Nota berkualiti tinggi ada di sini! Mengenai pengoptimuman prestasi PHP7

Nota berkualiti tinggi ada di sini! Mengenai pengoptimuman prestasi PHP7

Sep 18, 2021 pm 04:12 PM
php7

Opcache

1 Prinsip Opcache
Proses pelaksanaan biasa PHP adalah seperti berikut

permintaan (nginx, apache, cli, dsb.) –> Enjin Zend membaca fail .php –> Opcode) –> ;Akhirnya laksanakan Opcode–> respons kembali

Setiap kali skrip PHP diminta, langkah di atas akan dilaksanakan Jika kod sumber PHP tidak berubah, maka Opcode tidak akan berubah. Jelas sekali, tidak perlu menjana semula Opcode setiap kali Digabungkan dengan mekanisme caching di mana-mana dalam Web, bukankah lebih pantas untuk mengakses Opcode yang dicache pada masa hadapan caching adalah seperti berikut:

Tujuan Opcode cache adalah untuk mengelakkan penyusunan berulang dan mengurangkan overhed CPU dan memori.
2. Konfigurasi Opcache
Tambah di bawah php.ini:

// 加载opcache(需确认已安装opcache拓展)
zend_extension=opcache.so
// 开启opcache
opcache.enable = 1
// OPcache共享内存存储大小,单位MB
opcache.memory_consumption=1024 // 1G
// PHP使用了一种叫做字符串驻留,默认是4MB
opcache.interned_strings_buffer=32
// 这个选项用于控制内存中最多可以缓存多少个PHP文件,这个选项必须得设置得足够大,大于你的项目中的所有PHP文件的总和
opcache.max_accelerated_files=80000
// 设置缓存的过期时间(单位是秒),为0的话每次都要检查
opcache.revalidate_freq=3
// 从字面上理解就是“允许更快速关闭”
opcache.fast_shutdown=1
// CLI环境下,PHP启用OPcache
opcache.enable_cli=1
Salin selepas log masuk

HugePage

prinsip HugePage
Dengan mendayakan ciri ini, PHP7 akan "memindahkan" segmen TEXTnya sendiri (badan pelaksanaan) ke Huagepage Dalam ujian sebelumnya, kami boleh melihat peningkatan QPS sebanyak 2% hingga 3% pada WordPress.
Untuk apa itu Hugepage, secara ringkasnya, memori lalai dihalakan dalam 4KB, dan alamat maya serta alamat memori perlu ditukar, dan penukaran ini memerlukan carian jadual untuk mempercepatkan jadual proses carian, CPU akan Terbina dalam TLB (Terjemahan Lookaside Buffer), adalah jelas bahawa jika halaman maya lebih kecil, bilangan entri dalam jadual akan lebih banyak, dan saiz TLB adalah terhad, lebih banyak entri, lebih tinggi Cache Miss TLB akan, jadi jika kita Membolehkan halaman memori yang besar secara tidak langsung dapat mengurangkan TLB Cache Miss ini. Bagi pengenalan terperinci, saya tidak akan pergi ke butiran selepas mencari banyak di Google Di sini saya menerangkan bagaimana untuk dayakan ciri baharu ini, yang akan membawa peningkatan prestasi yang ketara.
2. Konfigurasi HugePage

$ sudo sysctl vm.nr_hugepages=512 // 切勿越大越好,会长占内存
Salin selepas log masuk

Peruntukkan 512 memori halaman besar yang dikhaskan:

cat /proc/meminfo  | grep Huge
AnonHugePages:    106496 kB
HugePages_Total:     512
HugePages_Free:      504
HugePages_Rsvd:       27
HugePages_Surp:        0
Hugepagesize:       2048 kB
Salin selepas log masuk

Kemudian tambahkan php.ini:

opcache.huge_code_pages=1
Salin selepas log masuk

Cache fail Opcache

1 Pengenalan kepada cache fail Opcache
Gunakan opcache untuk menyimpan fail php yang dikompilasi sebagai fail dan pecutan skrip akan mempunyai peningkatan prestasi yang jelas
2. Konfigurasi cache fail Opcache
Tambah dalam php.ini:

opcache.file_cache=/tmp
Salin selepas log masuk

seperti PHP ini akan cache beberapa eksport binari Opcode fail dalam direktori /tmp, yang boleh wujud merentasi kitaran hayat PHP

Selepas konfigurasi, anda perlu memulakan semula php-fpm

Ujian peribadi

Sistem: centOs 7
versi php: 7.4
nginx
laravel: 8.5

Sebelum pengoptimuman

Memori: 2G/16G
Konkurensi 4W dalam 10 minit
Kadar kegagalan: 24%
Laporan pengagregatan


Nota berkualiti tinggi ada di sini! Mengenai pengoptimuman prestasi PHP7

Proses transaksi sesaat

![Pengoptimuman Prestasi PHP7]
![Nota Pengoptimuman Prestasi PHP7]

Nota berkualiti tinggi ada di sini! Mengenai pengoptimuman prestasi PHP7

cpu :20%-40%

Memori: 5.8G/16G (di sini saya tetapkan HugePage kepada 2048)
Konkurensi 4W dalam 10 minit
Kadar kegagalan: 0%

Ujian tekanan pertama

Laporan pengagregatan


Nota berkualiti tinggi ada di sini! Mengenai pengoptimuman prestasi PHP7

Memproses transaksi sesaat

Nota berkualiti tinggi ada di sini! Mengenai pengoptimuman prestasi PHP7

Kedua ujian tekanan

Laporan pengagregatan

Nota berkualiti tinggi ada di sini! Mengenai pengoptimuman prestasi PHP7

Transaksi diproses sesaat

Nota berkualiti tinggi ada di sini! Mengenai pengoptimuman prestasi PHP7

Pembelajaran yang disyorkan: "
Tutorial PHP7"

Atas ialah kandungan terperinci Nota berkualiti tinggi ada di sini! Mengenai pengoptimuman prestasi PHP7. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana untuk memasang sambungan mongo dalam php7.0 Bagaimana untuk memasang sambungan mongo dalam php7.0 Nov 21, 2022 am 10:25 AM

Cara memasang sambungan mongo dalam php7.0: 1. Buat kumpulan pengguna dan pengguna mongodb 2. Muat turun pakej kod sumber mongodb dan letakkan pakej kod sumber dalam direktori "/usr/local/src/" 3. Masukkan direktori "src/" 4. Buka zip pakej kod sumber 5. Buat direktori fail mongodb 6. Salin fail ke direktori "mongodb/" 7. Buat fail konfigurasi mongodb;

Bagaimana untuk menyelesaikan masalah apabila php7 mengesan bahawa port tcp tidak berfungsi Bagaimana untuk menyelesaikan masalah apabila php7 mengesan bahawa port tcp tidak berfungsi Mar 22, 2023 am 09:30 AM

Dalam php5, kita boleh menggunakan fungsi fsockopen() untuk mengesan port TCP. Fungsi ini boleh digunakan untuk membuka sambungan rangkaian dan melakukan beberapa komunikasi rangkaian. Tetapi dalam php7, fungsi fsockopen() mungkin menghadapi beberapa masalah, seperti tidak dapat membuka port, tidak dapat menyambung ke pelayan, dsb. Untuk menyelesaikan masalah ini, kita boleh menggunakan fungsi socket_create() dan fungsi socket_connect() untuk mengesan port TCP.

Apakah yang perlu saya lakukan jika pemalam dipasang dalam php7.0 tetapi ia masih menunjukkan bahawa ia tidak dipasang? Apakah yang perlu saya lakukan jika pemalam dipasang dalam php7.0 tetapi ia masih menunjukkan bahawa ia tidak dipasang? Apr 02, 2024 pm 07:39 PM

Untuk menyelesaikan pemalam yang tidak menunjukkan isu yang dipasang dalam PHP 7.0: Semak konfigurasi pemalam dan dayakan pemalam. Mulakan semula PHP untuk menggunakan perubahan konfigurasi. Semak kebenaran fail pemalam untuk memastikan ia betul. Pasang kebergantungan yang hilang untuk memastikan pemalam berfungsi dengan betul. Jika semua langkah lain gagal, bina semula PHP. Punca lain yang mungkin termasuk versi pemalam yang tidak serasi, memuatkan versi yang salah atau isu konfigurasi PHP.

Cara memasang dan menggunakan php7.0 Cara memasang dan menggunakan php7.0 Nov 30, 2022 am 09:56 AM

Cara memasang dan menggunakan php7.0: 1. Pergi ke laman web rasmi PHP untuk memuat turun versi pemasangan yang sepadan dengan sistem tempatan 2. Ekstrak fail zip yang dimuat turun ke direktori yang ditentukan 3. Buka tetingkap baris arahan dan pergi ke direktori "E:\php7" Hanya jalankan arahan "php -v".

Apr 09, 2024 pm 01:33 PM

Penyelesaian biasa untuk persekitaran pelayan PHP termasuk memastikan versi PHP yang betul dipasang dan fail yang berkaitan telah disalin ke direktori modul. Lumpuhkan SELinux buat sementara waktu atau selama-lamanya. Semak dan konfigurasikan PHP.ini untuk memastikan sambungan yang diperlukan telah ditambah dan disediakan dengan betul. Mulakan atau mulakan semula perkhidmatan PHP-FPM. Semak tetapan DNS untuk isu penyelesaian.

Bagaimana cara menetapkan kebenaran secara automatik UnixSocket selepas sistem dimulakan semula? Bagaimana cara menetapkan kebenaran secara automatik UnixSocket selepas sistem dimulakan semula? Mar 31, 2025 pm 11:54 PM

Bagaimana untuk menetapkan keizinan UnixSocket secara automatik selepas sistem dimulakan semula. Setiap kali sistem dimulakan semula, kita perlu melaksanakan perintah berikut untuk mengubahsuai keizinan UnixSocket: sudo ...

Mengapa ralat berlaku semasa memasang pelanjutan menggunakan PECL dalam persekitaran Docker? Bagaimana menyelesaikannya? Mengapa ralat berlaku semasa memasang pelanjutan menggunakan PECL dalam persekitaran Docker? Bagaimana menyelesaikannya? Apr 01, 2025 pm 03:06 PM

Punca dan penyelesaian untuk kesilapan Apabila menggunakan PECL untuk memasang sambungan dalam persekitaran Docker Apabila menggunakan persekitaran Docker, kami sering menemui beberapa sakit kepala ...

Mana satu lebih baik, php8 atau php7? Mana satu lebih baik, php8 atau php7? Nov 16, 2023 pm 03:09 PM

Berbanding dengan PHP7, PHP8 mempunyai beberapa kelebihan dan penambahbaikan dari segi prestasi, ciri baharu dan penambahbaikan sintaks, sistem jenis, pengendalian ralat dan sambungan. Walau bagaimanapun, memilih versi yang hendak digunakan bergantung pada keperluan khusus anda dan keadaan projek. Pengenalan terperinci: 1. Peningkatan prestasi, PHP8 memperkenalkan pengkompil Just-in-Time (JIT), yang boleh meningkatkan kelajuan pelaksanaan kod 2. Ciri baharu dan penambahbaikan sintaks, PHP8 menyokong pengisytiharan parameter yang dinamakan dan parameter pilihan, membuat fungsi Panggilan adalah lebih fleksibel kelas tanpa nama, jenis pengisytiharan sifat, dsb.

See all articles