PHP7怎么通過yum源安裝及性能測試-創(chuàng)新互聯(lián)

今天就跟大家聊聊有關(guān)PHP7怎么通過yum源安裝及性能測試,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比調(diào)兵山網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式調(diào)兵山網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋調(diào)兵山地區(qū)。費用合理售后完善,十載實體公司更值得信賴。

提到PHP,肯定會有人說這是世界上最好的編程語言。單說流行程度,目前全球超過81.7%的服務(wù)器后端都采用了PHP語言,它驅(qū)動著全球超過2億多個網(wǎng)站。上月初PHP7正式版發(fā)布,迎來自2004年以來大的版本更新?,F(xiàn)在PHP 7.0正式發(fā)布。

對于普通的PHP網(wǎng)站,主要是IO密集型的,瓶頸在MySQL數(shù)據(jù)之上,體現(xiàn)不出來PHP性能的劣勢。但在密集計算方面比C、C++、Java這種靜態(tài)編譯型語言差幾十倍甚至上百倍。如果在PHP開發(fā)中使用了比較復(fù)雜的框架,如symfony,程序性能會明顯下降。事實上,PHP語言最初的設(shè)計,就不是用來解決計算密集型的應(yīng)用場景。我們可以這樣粗略理解為,PHP為了提升開發(fā)效率,而犧牲了執(zhí)行效率。

但PHP比較流行,如新浪微博、Facebook這種大型網(wǎng)站大部分程序都是使用PHP寫的,也就是在這種大規(guī)模應(yīng)用下,PHP性能低下就顯現(xiàn)出來了。Facebook早期的很多代碼是使用PHP來開發(fā)的,但是,隨著業(yè)務(wù)的快速發(fā)展,PHP執(zhí)行效率成為越來越明顯的問題。為了優(yōu)化執(zhí)行效率,F(xiàn)acebook在2008年就開始使用HipHop,這是一種PHP執(zhí)行引擎,最初是為了將Fackbook的大量PHP代碼轉(zhuǎn)成 C++,以提高性能和節(jié)約資源。使用HipHop的PHP代碼在性能上有數(shù)倍的提升。后來,F(xiàn)acebook將HipHop平臺開源,逐漸發(fā)展為現(xiàn)在的HHVM。HHVM用來替換PHP自身使用的引擎Zend Engine。據(jù)說性能提升了70%。當(dāng)然PHP官方也知道PHP大的短板,于是推出了PHP7項目,主要是重構(gòu)了Zend Engine引擎。

PHP7最顯著的變化就是性能的極大提升,已接近Facebook開發(fā)的PHP執(zhí)行引擎HHVM。在WordPress基準(zhǔn)性能測試中,速度比5.6版本要快2~3倍,大大減少了內(nèi)存占用。PHP7在語言上也有一些變化,比如添加返回類型聲明、增加了一些新的保留關(guān)鍵字等。在安全方面,去除了PHP安全模式,添加魔術(shù)引號等。不僅如此,新版還支持64位,而且包含最新版Zend引擎。其實PHP7的在真實場景的性能確實已經(jīng)和HHVM相當(dāng),在一些場景甚至超過了HHVM。但HHVM的運維復(fù)雜, 是多線程模型, 這就代表著如果一個線程導(dǎo)致crash了, 那么整個服務(wù)就掛了, 并且它不會自動重啟。另外它采用JIT, 那么意味著, 重啟以后要預(yù)熱, 沒有預(yù)熱的情況下, 性能較為糟糕。并且多線程模型調(diào)試?yán)щy, 這對于追求穩(wěn)定來說的Web服務(wù)來說, 是非常不適合的。

YUM安裝PHP7

想使用最新版PHP,就需要使用到REMI源,Remi repository是包含最新版本PHP和MySQL包的 Linux 源,由Remi提供維護。有個這個源之后,使用YUM安裝或更新PHP、MySQL較新版本了。

安裝最新的Remi源自動安裝文件

# CentOS 6 / RHEL 6
yum install /tupian/20230522/remi-release-6.rpm
# CentOS 7 / RHEL 7
yum install http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

安裝PHP相關(guān)組件,下面提供的是一個生產(chǎn)環(huán)境中可以使用的標(biāo)配安裝。

$ yum --enablerepo=remi,remi-php70 install
php \
php-cgi \
php-cli \
php-fpm \
php-common \
php-devel \
php-mysqlnd \
php-mysql \
php-sqlite3 \
php-mbstring \
php-msgpack \
php-mcrypt \
php-bcmath \
php-gd \
php-xml \
php-ldap \
php-xmlrpc \
php-opcache \
php-curl \
php-json \
php-odbc \
php-pdo \
php-bz2 \
php-xml \
php-ftp \
php-imap \
php-snmp \
php-redis \
php-memcached

查看PHP版本

$ php -v
PHP 7.0.9 (cli) (built: Jul 20 2016 18:08:08) ( NTS )

啟動PHP-FPM

$ service php-fpm start

到這里,PHP7.0就安裝完成了。如果需要用到PHP擴展功能,如redis、memcached等,只需要也使用YUM安裝即可,如下:

$ yum --enablerepo=remi,remi-php70 install php-redis php-memcached

如果在REMI或EPEL源中都找不到你需要的擴展模塊,那么就需要手動編譯安裝了,也很簡單。

另外查看PHP模塊信息使用php -m命令。

$ php -m | grep redis
redis

安裝一套LNMP參考:LNMP安裝包部署實戰(zhàn)或者參考PHP7.0版本的LNMPZabbix 3.0安裝使用詳解

PHP7性能測試

環(huán)境:4核 CPU,內(nèi)存4G,操作系統(tǒng)Centos 6.5。

首先說一點GCC編譯器的建議,據(jù) 鳥哥 建議,使用新一點的編譯器,推薦 GCC 4.8以上,因為只有GCC 4.8以上PHP才會開啟Global Register for opline and execute_data支持, 這個會帶來5%左右的性能提升。

寫一段程序(網(wǎng)上提供的簡單測試方法):

第一段,生成一個 60 萬元素的數(shù)組,通過查找key 的方式,來確定key是否存在。

< ?php
$a = array();
for($i=0;$i<600000;$i++){
  $a[$i] = $i;
}
 
foreach($a as $i)
{
 array_key_exists($i, $a);
}

首先是PHP 5.3.17版。

[root@localhost test]# time php search_by_key.php 
real 0m0.389s
user 0m0.337s
sys  0m0.051s
[root@localhost test]# time php search_by_key.php 
real 0m0.378s
user 0m0.308s
sys  0m0.062s
[root@localhost test]# time php search_by_key.php 
real 0m0.378s
user 0m0.317s
sys  0m0.061s

其次是PHP 7.0版本。

[root@localhost php7]# time php7 search_by_key.php
real 0m0.082s
user 0m0.066s
sys  0m0.014s
[root@localhost php7]# time php7 search_by_key.php
real 0m0.080s
user 0m0.058s
sys  0m0.021s
[root@localhost php7]# time php7 search_by_key.php
real 0m0.080s
user 0m0.053s
sys  0m0.026s`

響應(yīng)時間在PHP7下運行變?yōu)樵瓉淼?/4。

還是上面的這個方式,不過由于速度較慢,所以變成了一個60000個元素的數(shù)組,查找值。

< ?php
$a = array();
for($i=0;$i<600000;$i++){
  $a[$i] = $i;
}
 
foreach($a as $i)
{
 array_key_exists($i, $a);
}
[root@localhost test]# time php search_by_val.php 
real 0m24.296s
user 0m24.184s
sys  0m0.025s
[root@localhost test]# time php search_by_val.php 
real 0m25.523s
user 0m25.317s
sys  0m0.026s
[root@localhost test]# time php search_by_val.php 
real 0m26.026s
user 0m25.478s
sys  0m0.092s

等待的時間,總是覺得很漫長,三次測試,花掉了75秒多。下面,PHP 7 登場了。

[root@localhost php7]# time php7 search_by_val.php
real 0m3.362s
user 0m3.323s
sys  0m0.007s
[root@localhost php7]# time php7 search_by_val.php
real 0m3.266s
user 0m3.251s
sys  0m0.004s
[root@localhost php7]# time php7 search_by_val.php
real 0m3.290s
user 0m3.275s
sys  0m0.006s

有沒有!速度整整提高了將近7倍。

看完上述內(nèi)容,你們對PHP7怎么通過yum源安裝及性能測試有進一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道,感謝大家的支持。

當(dāng)前名稱:PHP7怎么通過yum源安裝及性能測試-創(chuàng)新互聯(lián)
文章起源:http://muchs.cn/article22/coeejc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供軟件開發(fā)、網(wǎng)站導(dǎo)航品牌網(wǎng)站制作、搜索引擎優(yōu)化、動態(tài)網(wǎng)站、企業(yè)網(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ǎng)站