摘要:讓達到最高性能的幾個建議懶得排版了,伯樂在線鏈接原文出處惠新宸歡迎分享原創到伯樂頭條已經發布了,作為十年來最大的版本升級,最大的性能升級,在多放的測試中都表現出很明顯的性能提升,然而,為了讓它能發揮出最大的性能,我還是有幾件事想提醒下。
讓 PHP7 達到最高性能的幾個建議
懶得排版了,伯樂在線鏈接:http://blog.jobbole.com/95657/
原文出處: 惠新宸(@Laruence) 歡迎分享原創到伯樂頭條
PHP7 已經發布了,作為PHP十年來最大的版本升級,最大的性能升級,PHP7在多放的測試中都表現出很明顯的性能提升,然而,為了讓它能發揮出最大的性能,我還是有幾件事想提醒下。
PHP7 VS PHP5.6
Opcache
記得啟用Zend Opcache,因為PHP7即使不啟用Opcache速度也比PHP-5.6啟用了Opcache快,所以之前測試時期就發生了有人一直沒有啟用Opcache的事情。啟用Opcache非常簡單,在php.ini配置文件中加入:
1
2
3
zend_extension=opcache.so
opcache.enable=1
opcache.enable_cli=1"
使用新的編譯器
使用新一點的編譯器,推薦GCC 4.8以上,因為只有GCC 4.8以上PHP才會開啟Global Register for opline and execute_data支持,這個會帶來5%左右的性能提升(Wordpres的QPS角度衡量)
其實GCC 4.8以前的版本也支持,但是我們發現它支持的有Bug,所以必須是4.8以上的版本才會開啟這個特性。
HugePage
我之前的文章也介紹過: 讓你的PHP7更快之Hugepage ,首先在系統中開啟HugePages,然后開啟Opcache的huge_code_pages。
以我的CentOS 6.5為例,通過:
1
$sudo sysctl vm.nr_hugepages=512
分配512個預留的大頁內存:
1
2
3
4
5
6
7
$ cat /proc/meminfo | grep Huge
AnonHugePages: 106496 kB
HugePages_Total: 512
HugePages_Free: 504
HugePages_Rsvd: 27
HugePages_Surp: 0
Hugepagesize: 2048 kB
然后在php.ini中加入:
1
opcache.huge_code_pages=1
這樣一來,PHP會把自身的text段,以及內存分配中的huge都采用大內存頁來保存,減少TLB miss,從而提高性能。
Opcache file cache
開啟Opcache File Cache(實驗性),通過開啟這個,我們可以讓Opcache把opcode緩存緩存到外部文件中,對于一些腳本,會有很明顯的性能提升。
在php.ini中加入:
1
opcache.file_cache=/tmp
這樣PHP就會在/tmp目錄下Cache一些Opcode的二進制導出文件,可以跨PHP生命周期存在。
PGO
我之前的文章: 讓你的PHP7更快(GCC PGO) 也介紹過,如果你的PHP是專門為一個項目服務,比如只是為你的Wordpress,或者drupal,或者其他什么,那么你就可以嘗試通過PGO,來提升PHP,專門為你的這個項目提高性能。
具體的,以wordpress 4.1為優化場景。首先在編譯PHP的時候首先:
1
$ make prof-gen
然后用你的項目訓練PHP,比如對于Wordpress:
1
$ sapi/cgi/php-cgi -T 100 /home/huixinchen/local/www/htdocs/wordpress/index.php >/dev/null
也就是讓php-cgi跑100遍wordpress的首頁,從而生成一些在這個過程中的profile信息。
最后:
1
2
$ make prof-clean
$ make prof-use
這個時候你編譯得到的PHP7,就是為你的項目量身打造的最高性能的編譯版本。
暫時就這么多吧,以后想起來再加,歡迎大家嘗試,thanks。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/21265.html
摘要:結語這里主要測試了,,,,這五個常用的且可有其他實現方式代替的魔法函數。里使用魔術方法的性能還是存在問題嗎答在中使用與不使用魔術方法之間的差異和在中近乎一致。 前言 曾經記得鳥哥Laruence提過不建議使用魔術方法,自此之后一旦涉及使用魔術方法的地方,我都會下意識的想一下,這樣寫真的好嗎?由于這一到兩年來一直忙于工作和學習新的知識,所以在這道坎兒上一直沒有做深入的探索一直恍恍惚惚過去...
摘要:這是年前的最后一篇文章,本章來聊一聊程序員如何優雅的搬磚搬磚既為達到目的,不斷重復某項工作的行為,其實與造輪子一樣,不謀而合基礎這里的基礎并非單指其技術能力,技術底蘊,更有意體現程序員在初期不斷重復的工作而獲得的感想與意識。 showImg(https://segmentfault.com/img/bVbnSFx?w=800&h=444); 我一生的文章都會放在這里,我的博客,我希望每...
摘要:也可以接入項目打包測試流程做代碼檢測。擴展替換以后廢棄了和擴展,項目中使用的使用的類使用的是已經廢棄的擴展使用擴展做兼容替換。測試方案和大部分公司差不多,項目組劃分了線下開發環境預發布環境和生產環境三個環境。 項目由PHP5.5切換至PHP7.1.15 背景 從2015年鳥哥的技術分享,我們知道PHP7是對底層實現得一次完全重構,函數調用機制和內存管理等很多方便做了優化,使PHP性能有...
摘要:開源的事,咱先不說了,知乎上也有熱烈的討論,我們今天就來看一下正式版的算法和應用在其上的性能表現。分別在和下進行測試,并且兩者都分別打開和關閉,看看響應性能是否有明顯變化。可以說對高并發下的性能至為關鍵。 本周迎來2015年編程語言界的兩件大事,Swift 開源, PHP7 發布。這兩件大事,都是可以載入相應的編程語言的史冊級的事件。 Swift 開源的事,咱先不說了,知乎上也有熱烈的...
閱讀 2376·2021-09-30 09:47
閱讀 1367·2021-09-28 09:35
閱讀 3237·2021-09-22 15:57
閱讀 2485·2021-09-22 14:59
閱讀 3634·2021-09-07 10:25
閱讀 3069·2021-09-03 10:48
閱讀 3035·2021-08-26 14:14
閱讀 935·2019-08-30 15:55