成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

在PHP7下安裝Stone大幅度提升Laravel框架性能

oysun / 2391人閱讀

摘要:眾所周知,框架越重,性能相對(duì)就越低,因?yàn)橹匦涂蚣軙?huì)在解析時(shí)調(diào)用非常多的類方法和自定義函數(shù),導(dǎo)致性能?chē)?yán)重下降。好在相對(duì)于而言,性能提升了將近一倍,而的也是個(gè)不錯(cuò)的替代方案。首先安裝和擴(kuò)展。我已向作者反饋,他修正了這個(gè)問(wèn)題。

眾所周知,PHP框架越重,性能相對(duì)就越低,因?yàn)橹匦涂蚣軙?huì)在解析時(shí)調(diào)用非常多的類、方法和自定義函數(shù),導(dǎo)致性能?chē)?yán)重下降。
Laravel是一個(gè)非常受歡迎的PHP框架,但它也是一個(gè)重型的全棧框架,你可以使用這個(gè)方法測(cè)試你的Laravel應(yīng)用的性能,效果都很不理想。
當(dāng)然Laravel還有個(gè)姊妹版:Lumen,這個(gè)是類似于Slim的微框架,如果你覺(jué)得這個(gè)微框架足夠使用,可以用來(lái)替代Laravel。
好在PHP7相對(duì)于PHP5.6而言,性能提升了將近一倍,而Facebook的HHVM也是個(gè)不錯(cuò)的替代方案。所以如果可能的話,盡可能用最新版PHP,好處不是一星半點(diǎn)兒。
但對(duì)于Laravel這些重型框架來(lái)說(shuō),即使用了PHP7/HHVM,性能還是很低,雖然用緩存(比如memcached/redis等)可以緩解服務(wù)器壓力,但只是提升了靜態(tài)頁(yè)面速度,對(duì)于Eloquent ORM這種很耗性能的地方,還是治標(biāo)不治本(當(dāng)然你可以用DB門(mén)面代替,參考我的這個(gè)提問(wèn)),難道就沒(méi)有辦法了嗎?(有人說(shuō)opcache,但是它對(duì)于Laravel框架來(lái)說(shuō)效果不是非常好)
不!你需要Stone!
Stone是什么?這是作者在PHPHub上面的帖子,查看Stone項(xiàng)目地址和文檔。
下面是在PHP7的安裝方法:
我的測(cè)試環(huán)境是Debian Linux 8 64位,OSX也可以(用homebrew安裝Nginx和PHP7,其他操作見(jiàn)下面),不推薦用Windows,因?yàn)榫幾g擴(kuò)展相對(duì)麻煩些。
用Debian/Ubuntu/Linux mint可以使用dotdeb源,有最新版的Nginx,PHP7,MySQL/MariaDB。當(dāng)然我不會(huì)告訴你,我用的是OpenResty,安裝過(guò)程不贅述,不會(huì)的請(qǐng)Google。
首先安裝swoolerunkit擴(kuò)展。
pecl install swoole
PHP7在這里的坑是,如果用這個(gè)源安裝了PHP7,由于PEAR不是最新版,可能會(huì)遇到這個(gè)issues描述的問(wèn)題,解決方法:

wget http://pear.php.net/go-pear.phar
php go-pear.phar

在撰寫(xiě)本文時(shí),runkit擴(kuò)展暫時(shí)不支持PHP7,所以不要用pecl安裝,編譯會(huì)出錯(cuò)的。但是有人做了修改版可以用,見(jiàn)這個(gè)issues。
安裝方法:

git clone https://github.com/runkit7/runkit7.git
cd runkit7
phpize
./configure
make
sudo make install

到此這兩個(gè)擴(kuò)展都安裝成功。
然后根據(jù)你的PHP7實(shí)際路徑來(lái)寫(xiě)ini文件,加載swoole和runkit。至于Windows或者OSX用homebrew安裝的話,直接改php.ini就行了。
使用Dotdeb源安裝的PHP7路徑是/etc/php/7.0/,所以我的相關(guān)命令是:

sudo echo extension=swoole.so >> /etc/php/7.0/cli/conf.d/20-swoole.ini
sudo echo extension=swoole.so >> /etc/php/7.0/fpm/conf.d/20-swoole.ini
sudo echo extension=runkit.so >> /etc/php/7.0/cli/conf.d/20-runkit.ini
sudo echo extension=runkit.so >> /etc/php/7.0/fpm/conf.d/20-runkit.ini

然后安裝Stone:composer require stone/kernel:dev-master,不得不說(shuō)的是,在撰寫(xiě)本文時(shí)作者的gitbook上面有兩個(gè)錯(cuò)誤

1.把pecl寫(xiě)成了pcel;
2.composer安裝的地址。仍然是他之前的項(xiàng)目地址,而他在帖子里面說(shuō)了,由于之前的項(xiàng)目包含了他的公司的某些信息,所以他換了個(gè)地址,就是StoneGroup/stone。

大家在參考Stone文檔時(shí)務(wù)必按本文操作,少走彎路。我已向作者反饋,他修正了這個(gè)問(wèn)題。
最后重啟php-fpm,再用php -m看看,這兩個(gè)擴(kuò)展加載成功。
接下來(lái)的步驟,你按照文檔來(lái)操作就行了,到此Stone在PHP7上面安裝成功!啟動(dòng)Stone,好好享受性能的飛躍吧!
PS:找到另一個(gè)類似項(xiàng)目,但是在細(xì)節(jié)上面的實(shí)現(xiàn)方式不同,感興趣的可以看看:LaravelFly

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/21735.html

相關(guān)文章

  • 2017年P(guān)HP程序員未來(lái)路何方

    摘要:目前來(lái)看等語(yǔ)言還難以企及和。作為一個(gè)資深的開(kāi)發(fā)者,在技術(shù)上給各位程序十點(diǎn)未來(lái)的建議,希望對(duì)大家有所幫助。開(kāi)發(fā)者應(yīng)當(dāng)學(xué)習(xí)掌握規(guī)范,在開(kāi)發(fā)程序時(shí)應(yīng)當(dāng)盡量遵循規(guī)范。程序員除了寫(xiě)后臺(tái)程序之外,還有很大一部分工作在展現(xiàn)層,和瀏覽器前端打交道。 PHP 從誕生到現(xiàn)在已經(jīng)有20多年歷史,從Web時(shí)代興起到移動(dòng)互聯(lián)網(wǎng)退潮,互聯(lián)網(wǎng)領(lǐng)域各種編程語(yǔ)言和技術(shù)層出不窮, Node.js 、 GO 、 Pytho...

    william 評(píng)論0 收藏0
  • 【天贏金創(chuàng)】PHP7與Swoole

    摘要:但在密集計(jì)算方面比等靜態(tài)編譯語(yǔ)言差幾十倍甚至上百倍。一使用棧內(nèi)存在引擎和擴(kuò)展中,經(jīng)常要?jiǎng)?chuàng)建一個(gè)的變量,底層就是一個(gè)指針。代碼中創(chuàng)建的變量也進(jìn)行了優(yōu)化,直接在棧內(nèi)存上預(yù)分配。應(yīng)用層與底層在錯(cuò)誤拋出的方式全部統(tǒng)一為異常。 原文:http://rango.swoole.com/archives/440最近PHP官方終于發(fā)布了傳說(shuō)中的PHP7,雖然只是alpha版。PHP7號(hào)稱是新一代的PHP...

    MingjunYang 評(píng)論0 收藏0
  • php系列框架的加速器Opcache

    摘要:什么是當(dāng)解釋器完成對(duì)腳本代碼的分析后,便將它們生成可以直接運(yùn)行的中間代碼,也稱為操作碼,。的目地是避免重復(fù)編譯,減少和內(nèi)存開(kāi)銷。這將帶來(lái)顯著的性能加速,通常特別是高流量和高并發(fā)量時(shí)降低了整體服務(wù)器的內(nèi)存消耗,而且很少有缺點(diǎn)。 一、個(gè)人實(shí)踐發(fā)現(xiàn)opcache 最近為了應(yīng)對(duì)雙十一期間高流量的沖擊,小編通過(guò)壓力測(cè)試去查找服務(wù)器性能瓶頸,發(fā)現(xiàn)100并發(fā)時(shí),QPS并不是很高,但CPU和內(nèi)存消耗特...

    lauren_liuling 評(píng)論0 收藏0
  • PHPer、Laravel 面試可能會(huì)遇到的問(wèn)題及答案

    摘要:如何實(shí)現(xiàn)持久化持久化,將在內(nèi)存中的的狀態(tài)保存到硬盤(pán)中,相當(dāng)于備份數(shù)據(jù)庫(kù)狀態(tài)。相當(dāng)于備份數(shù)據(jù)庫(kù)接收到的命令,所有被寫(xiě)入的命令都是以的協(xié)議格式來(lái)保存的。 最近社區(qū)里面有一篇文章引起了最多程序猿的關(guān)注,Laravel、PHPer 面試可能會(huì)遇到的問(wèn)題,看評(píng)論區(qū)不少小伙伴們被難倒,對(duì)于一些問(wèn)題同樣難倒了我(其實(shí)有很多啦),趁著周末有空,又總結(jié)梳理了一遍,順便來(lái)答一波題。由于個(gè)人技術(shù)水平有限,答...

    fanux 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

oysun

|高級(jí)講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<