91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

PHP7開啟Opcode打造強悍性能的方法

發布時間:2021-02-04 10:44:22 來源:億速云 閱讀:114 作者:小新 欄目:開發技術

小編給大家分享一下PHP7開啟Opcode打造強悍性能的方法,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

前言

鳥哥在博客中說,提高PHP 7性能的幾個tips,第一條就是開啟opcache:

記得啟用Zend Opcache, 因為PHP7即使不啟用Opcache速度也比PHP-5.6啟用了Opcache快, 所以之前測試時期就發生了有人一直沒有啟用Opcache的事情

那么什么是Opcache呢?

Opcache 的前生是 Optimizer+ ,它是PHP的官方公司 Zend 開發的一款閉源但可以免費使用的 PHP 優化加速組件。 Optimizer+ 將PHP代碼預編譯生成的腳本文件 Opcode 緩存在共享內存中供以后反復使用,從而避免了從磁盤讀取代碼再次編譯的時間消耗。同時,它還應用了一些代碼優化模式,使得代碼執行更快。從而加速PHP的執行。

 PHP的正常執行流程如下

PHP7開啟Opcode打造強悍性能的方法

 request請求(nginx,apache,cli等)-->Zend引擎讀取.php文件-->掃描其詞典和表達式 -->解析文件-->創建要執行的計算機代碼(稱為Opcode)-->最后執行Opcode--> response 返回

每一次請求PHP腳本都會執行一遍以上步驟,如果PHP源代碼沒有變化,那么Opcode也不會變化,顯然沒有必要每次都重新生成Opcode,結合在Web中無所不在的緩存機制,我們可以把Opcode緩存下來,以后直接訪問緩存的Opcode豈不是更快,啟用Opcode緩存之后的流程圖如下所示:

PHP7開啟Opcode打造強悍性能的方法 

 Opcode cache 的目地是避免重復編譯,減少 CPU 和內存開銷。

下面介紹Opcache的安裝

安裝:

1、找到opcache的擴展,我的是php7.1

yum list php71*

2、安裝擴展

yum install php71w-opcache.x86_64

配置:

zend_extension=opcache.so
[opcache]
;開啟opcache
opcache.enable=1 

;CLI環境下,PHP啟用OPcache
opcache.enable_cli=1

;OPcache共享內存存儲大小,單位MB
opcache.memory_consumption=128 

;PHP使用了一種叫做字符串駐留(string interning)的技術來改善性能。例如,如果你在代碼中使用了1000次字符串“foobar”,在PHP內部只會在第一使用這個字符串的時候分配一個不可變的內存區域來存儲這個字符串,其他的999次使用都會直接指向這個內存區域。這個選項則會把這個特性提升一個層次——默認情況下這個不可變的內存區域只會存在于單個php-fpm的進程中,如果設置了這個選項,那么它將會在所有的php-fpm進程中共享。在比較大的應用中,這可以非常有效地節約內存,提高應用的性能。
這個選項的值是以兆字節(megabytes)作為單位,如果把它設置為16,則表示16MB,默認是4MB
opcache.interned_strings_buffer=8

;這個選項用于控制內存中最多可以緩存多少個PHP文件。這個選項必須得設置得足夠大,大于你的項目中的所有PHP文件的總和。
設置值取值范圍最小值是 200,最大值在 PHP 5.5.6 之前是 100000,PHP 5.5.6 及之后是 1000000。也就是說在200到1000000之間。
opcache.max_accelerated_files=4000

;設置緩存的過期時間(單位是秒),為0的話每次都要檢查
opcache.revalidate_freq=60

;從字面上理解就是“允許更快速關閉”。它的作用是在單個請求結束時提供一種更快速的機制來調用代碼中的析構器,從而加快PHP的響應速度和PHP進程資源的回收速度,這樣應用程序可以更快速地響應下一個請求。把它設置為1就可以使用這個機制了。
opcache.fast_shutdown=1

;如果啟用(設置為1),OPcache會在opcache.revalidate_freq設置的秒數去檢測文件的時間戳(timestamp)檢查腳本是否更新。
如果這個選項被禁用(設置為0),opcache.revalidate_freq會被忽略,PHP文件永遠不會被檢查。這意味著如果你修改了你的代碼,然后你把它更新到服務器上,再在瀏覽器上請求更新的代碼對應的功能,你會看不到更新的效果
強烈建議你在生產環境中設置為0,更新代碼后,再平滑重啟PHP和web服務器。
opcache.validate_timestamps=0

;開啟Opcache File Cache(實驗性), 通過開啟這個, 我們可以讓Opcache把opcode緩存緩存到外部文件中, 對于一些腳本, 會有很明顯的性能提升.
這樣PHP就會在/tmp目錄下Cache一些Opcode的二進制導出文件, 可以跨PHP生命周期存在.
opcache.file_cache=/tmp

查看phpinfo:

PHP7開啟Opcode打造強悍性能的方法

測試結果:

PHP7開啟Opcode打造強悍性能的方法

同樣的接口從以前的幾百毫秒提升到現在的50ms左右

PHP7開啟Opcode打造強悍性能的方法

以上是“PHP7開啟Opcode打造強悍性能的方法”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

桐庐县| 安达市| 航空| 温宿县| 黄石市| 上栗县| 资中县| 龙里县| 垫江县| 怀远县| 五常市| 定襄县| 阳东县| 遂昌县| 林周县| 绥江县| 新乡县| 和硕县| 将乐县| 永寿县| 通辽市| 全州县| 拜城县| 龙胜| 武汉市| 霍城县| 托克托县| 宜阳县| 光泽县| 洮南市| 罗田县| 杨浦区| 莆田市| 珲春市| 神农架林区| 宣威市| 陇南市| 清丰县| 古交市| 绵竹市| 嘉兴市|