怎么利用OPcache擴(kuò)展提升PHP7性能

小編給大家分享一下怎么利用OPcache擴(kuò)展提升PHP7性能,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

創(chuàng)新互聯(lián)公司于2013年開始,先為渾江等服務(wù)建站,渾江等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為渾江企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。

PHP7

No matter where I am, I will reply you immediately when I see the email.My Email: echo "YUBzYW1lZ28uY29tCg==" | base64 -d
前言
十一點半了,沉淀時間到了。

PHP在運(yùn)行的時候,存在這樣的一個流程,先將PHP代碼預(yù)編譯,生成字節(jié)碼后再加載到內(nèi)存里,最后CPU在內(nèi)存上執(zhí)行編譯后的字節(jié)碼片段。我們會發(fā)現(xiàn),在執(zhí)行PHP程序的時候,每次都經(jīng)過這樣的流程,此非浪費Time,是的,很容易聯(lián)想到:為何不向C++語言看齊呢,將源碼編譯成可直接加載到內(nèi)存so哥呢?呃呃???炷贸瞿愕牟綐?,裝上這顆子彈OPcache。自從PHP5.5.0出來后,就內(nèi)置此zend擴(kuò)展了。


What is OPcache
OPcache是PHP中的Zend擴(kuò)展,可以大大提升PHP的性能。
OPcache 通過將 PHP 腳本預(yù)編譯的字節(jié)碼存儲到共享內(nèi)存中來提升 PHP 的性能, 存儲預(yù)編譯字節(jié)碼的好處就是 省去了每次加載和解析 PHP 腳本的開銷。


Judge whether it has been extended OPcache

?  ~ php -m | grep OPcache
Zend OPcache
Zend OPcache

倘若沒有開啟的話,可以在php.ini配置中開啟
/home/samego/service/php7.2/php.ini

?  ~ echo zend_extension="opcache.so" >> /home/samego/service/php7.2/php.ini

About OPcache configure
接下來,我們需要在 PHP 的配置文件中啟用 OPcache(默認(rèn)是關(guān)閉的):

opcache.enable=1

下面我們繼續(xù)對 OPcache 進(jìn)行一些優(yōu)化配置:

opcache.memory_consumption=512

這個配置表示你想要分配給 OPcache 的內(nèi)存空間(單位:MB),設(shè)置一個大于 64 的值即可。

opcache.interned_strings_buffer=64

這個配置表示你想要分配給實際字符串的空間(單位:MB),設(shè)置一個大于 16 的值即可。

opcache.max_accelerated_files=32531

這個配置表示可以緩存多少個腳本,將這個值盡可能設(shè)置為與項目包含的腳本數(shù)接近(或更大)。

opcache.validate_timestamps=0

改配置值用于重新驗證腳本,如果設(shè)置為 0(性能最佳),需要手動在每次 PHP 代碼更改后手動清除 OPcache。如果你不想要手動清除,可以將其設(shè)置為 1 并通過 opcache.revalidate_freq 配置重新驗證間隔,這可能會消耗一些性能,因為需要每隔 x 秒檢查更改。

opcache.save_comments=1

這個配置會在腳本中保留注釋,我推薦開啟該選項,因為一些庫依賴于這個配置,并且我也找不出什么關(guān)閉它的好處。

opcache.fast_shutdown=0

快速關(guān)閉會給一個更快速清理內(nèi)存的機(jī)制,不過,在我的基準(zhǔn)測試中,更慢一些,可能這會應(yīng)用帶來一些性能提升,但是你需要自己去嘗試。

所以,最終的配置優(yōu)化長這樣:

opcache.enable=1
opcache.memory_consumption=512
opcache.interned_strings_buffer=64
opcache.max_accelerated_files=32531
opcache.validate_timestamps=0
opcache.save_comments=1
opcache.fast_shutdown=0

你可以使用這些配置值進(jìn)行實驗,具體配置值取決于你的應(yīng)用大小和服務(wù)器配置。
學(xué)習(xí)于Laravel社區(qū)


Laravel OPcache

  • install

    ?  ~ composer require appstract/laravel-opcache
  • configure

    ?  ~ php artisan vendor:publish --provider="Appstract\Opcache\OpcacheServiceProvider" --tag="config"
  • command

# Clear OPcache:
?  ~ php artisan opcache:clear

# Show OPcache config:
?  ~ php artisan opcache:config

# Show OPcache status:
?  ~ php artisan opcache:status

# Pre-compile your application code:
?  ~ php artisan opcache:optimize

拭目以待的場景測試

個人比較喜歡數(shù)據(jù)說話
場景:(1)請求GET接口 (2)測試次數(shù)10  (3)并發(fā)數(shù)為100

case non-extension

1000個請求,花費32.32秒,每秒30.94個請求

Transactions:               1000 hits
Availability:             100.00 %
Elapsed time:              32.32 secs
Data transferred:           0.97 MB
Response time:              0.32 secs
Transaction rate:          30.94 trans/sec
Throughput:             0.03 MB/sec
Concurrency:                9.96
Successful transactions:        1000
Failed transactions:               0
Longest transaction:            0.44
Shortest transaction:           0.11

case had extend

1000個請求,花費2.94秒,每秒340.14個請求

Transactions:               1000 hits
Availability:             100.00 %
Elapsed time:               2.94 secs
Data transferred:           0.97 MB
Response time:              0.03 secs
Transaction rate:         340.14 trans/sec
Throughput:             0.33 MB/sec
Concurrency:                9.86
Successful transactions:        1000
Failed transactions:               0
Longest transaction:            0.29
Shortest transaction:           0.01

以上是“怎么利用OPcache擴(kuò)展提升PHP7性能”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

當(dāng)前標(biāo)題:怎么利用OPcache擴(kuò)展提升PHP7性能
標(biāo)題URL:http://muchs.cn/article26/gdcejg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站維護(hù)微信小程序、網(wǎng)站收錄、營銷型網(wǎng)站建設(shè)、做網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

綿陽服務(wù)器托管