PHP7的性能較之前相比提升了很多,但是依然還有優(yōu)化的空間。
1、開啟Zend Opcache
在php.ini文件加入:
- zend_extension=opcache.so
- opcache.enable=1
- opcache.enable_cli=1
復(fù)制代碼
2、Hugepage 大頁內(nèi)存管理方式
首先在系統(tǒng)中開啟Hugepage,然后開啟Opcache的huge_code_pages:
- sysctl vm.nr_hugepages=512 ##分配512個預(yù)留的大頁內(nèi)存
復(fù)制代碼
cat /proc/meminfo | grep Huge
然后在php.ini中加入:
opcache.huge_code_pages=1
經(jīng)微科普實際測試,該優(yōu)化對性能的影響不太明顯。
3、Opcache File Cache
開啟Opcache File Cache,通過開啟這個可以讓Opcache把opcode緩存緩存到外部文件中,對于一些腳本,會有明顯的性能提升。在php.ini中加入:
4、減少PHP文件修改檢查的頻率,加入如下配置:
- opcache.validate_timestamps=600
- opcache.revalidate_freq=10
復(fù)制代碼 opcache.validate_timestamps=0時永不檢查php文件是否修改,性能最佳,適合于生產(chǎn)環(huán)境。
5、安裝memcache或Redis擴展
memcache或Redis是php中的內(nèi)容緩存組件。
6、開啟preload預(yù)加載
preload僅在php7.4以上版本支持。
- [opcache]
- zend_extension=opcache.so
- opcache.enable=1 # 啟用 opcache
- opcache.preload=your_preload_script.php #該腳本用于執(zhí)行預(yù)加載哪些文件
- opcache.preload_user=a_user_name # preload用戶,安全考慮禁止root用戶
復(fù)制代碼 一段最簡單的預(yù)加載腳本如下:
- $files = /* An array of files you want to preload */;
- foreach ($files as $file) {
- opcache_compile_file($file);
- }
復(fù)制代碼
PHP7性能優(yōu)化 |