讓PHP7達到最高效能的幾個Tips

2022-06-23 04:34:48 字數 2102 閱讀 9665

**自 laruence:
php7 已經發布了,作為 php 10年來最大的版本公升級,最大的效能公升級,php7 在多放的測試中都表現出很明顯的效能提公升,然而,為了讓它能發揮出最大的效能,我還是有幾件事想提醒下。

記得啟用 zend opcache,因為 php7 即使不啟用 opcache 速度也比 php-5.6 啟用了 opcache 快,所以之前測試時期就發生了有人一直沒有啟用 opcache 的事情。啟用 opcache 非常簡單,在 php.ini 配置檔案中加入:

zend_extension=opcache.so

opcache.enable=1

opcache.enable_cli=1

"

2. 使用新的編譯器

使用新一點的編譯器,推薦 gcc 4.8 以上,因為只有 gcc 4.8 以上 php 才會開啟 global register for opline and execute_data 支援。這個會帶來 5% 左右的效能提公升(wordpres 的 qps 角度衡量)。

其實 gcc 4.8 以前的版本也支援,但是我們發現它支援的有bug,所以必須是 4.8 以上的版本才會開啟這個特性。

3. hugepage

我之前的文章也介紹過:讓你的php7更快之hugepage,首先在系統中開啟 hugepages,然後開啟 opcache 的 huge_code_pages。

以我的 centos 6.5 為例,通過:

$sudo sysctl vm.nr_hugepages=512
分配 512 個預留的大頁記憶體:

$ cat /proc/meminfo  | grep

huge

anonhugepages:

106496

kbhugepages_total:

512hugepages_free:

504hugepages_rsvd:

27hugepages_surp:

0hugepagesize:

2048 kb

然後在 php.ini 中加入:

opcache.huge_code_pages=1
這樣一來,php 會把自身的 text 段,以及記憶體分配中的 huge 都採用大記憶體頁來儲存,減少 tlb miss,從而提高效能。

4. opcache file cache

開啟 opcache file cache(實驗性),通過開啟這個,我們可以讓 opcache 把 opcode 快取快取到外部檔案中,對於一些指令碼,會有很明顯的效能提公升。

在 php.ini 中加入:

opcache.file_cache=/tmp
這樣 php 就會在 /tmp 目錄下 cache 一些 opcode 的二進位制導出檔案,可以跨 php 生命週期存在。

5. pgo

我之前的文章:讓你的php7更快(gcc pgo) 也介紹過,如果你的 php 是專門為乙個專案服務,比如只是為你的 wordpress,或者 drupal,或者其他什麼,那麼你就可以嘗試通過 pgo,來提公升 php,專門為你的這個專案提高效能。

具體的,以 wordpress 4.1 為優化場景,首先在編譯php的時候首先:

$ make prof-gen
然後用你的專案訓練 php,比如對於 wordpress:

$ sapi/cgi/php-cgi -t 100 /home/huixinchen/local/www/htdocs/wordpress/index.php >/dev/null
也就是讓 php-cgi 跑100遍 wordpress 的首頁,從而生成一些在這個過程中的 profile 資訊。

最後:

$ make prof-clean

$ make prof-use && make

install

這個時候你編譯得到的 php7 就是為你的專案量身打造的最高效能的編譯版本。

讓PHP7達到最高效能的幾個Tips

php7已經發布了,作為php10年來最大的版本公升級,最大的效能公升級,php7在多放的測試中都表現出很明顯的效能提公升,然而,為了讓它能發揮出最大的效能,我還是有幾件事想提醒下.php7 vs php5.6 記得啟用zend opcache,因為php7即使不啟用opcache速度也比php 5...

讓PHP7達到最高效能的幾個Tips

php7 vs php5.6 記得啟用zend opcache,因為php7即使不啟用opcache速度也比php 5.6啟用了opcache快,所以之前測試時期就發生了有人一直沒有啟用opcache的事情.啟用opcache非常簡單,在php.ini配置檔案中加入 zend extension o...

讓PHP7達到最高效能的幾個Tips

php7已經發布了,作為php10年來最大的版本公升級,最大的效能公升級,php7在多放的測試中都表現出很明顯的效能提公升,然而,為了讓它能發揮出最大的效能,我還是有幾件事想提醒下.php7 vs php5.6 記得啟用zend opcache,因為php7即使不啟用opcache速度也比php 5...