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

資訊專欄INFORMATION COLUMN

PHP緩存之Opcode緩存

Lucky_Boy / 1743人閱讀

摘要:緩存之緩存什么是緩存當(dāng)解釋器完成對(duì)腳本代碼的分析后,便將他們聲稱可以直接運(yùn)行的中間代碼,也成為操作碼。同時(shí)它還提供一些接口用于開(kāi)發(fā)人員將用戶數(shù)據(jù)駐留在內(nèi)存中,我們稱之為。

PHP緩存之Opcode緩存


什么是Opcode緩存?

當(dāng)解釋器完成對(duì)腳本代碼的分析后,便將他們聲稱可以直接運(yùn)行的中間代碼,也成為操作碼(Operate Code, Opcode)。Opcode cache的目的是避免重復(fù)編譯,減少CPU和內(nèi)存的開(kāi)銷。但是一般動(dòng)態(tài)網(wǎng)站的性能瓶頸都在IO操作以及數(shù)據(jù)庫(kù)操作,那么Opcode緩存能夠帶來(lái)的優(yōu)化效果是有限的。

Opcode緩存的原理是什么?

當(dāng)請(qǐng)求PHP腳本時(shí),會(huì)經(jīng)歷以下幾個(gè)過(guò)程:  

Zend引擎從文件系統(tǒng)讀取文件、掃面器詞典和表達(dá)式、解析文件、創(chuàng)建要執(zhí)行的計(jì)算機(jī)代碼(Opcode),最后執(zhí)行Opcode。每一次請(qǐng)求都會(huì)執(zhí)行以上步驟,如果我們的PHP沒(méi)有變化,納悶Opcode也應(yīng)該是沒(méi)有變化的,所以不必要每次都重新生成Opcode。根據(jù)這個(gè)原理,我們可以把Opcode緩存下來(lái),再次訪問(wèn)相同文件時(shí),可以直接從Opcode執(zhí)行文件,啟用Opcode后文件的執(zhí)行流程如下:

有哪些PHP Opcode緩存插件?

Optimizer+(Optimizer+于2013年3月中旬改名為Opcache,PHP 5.5集成Opcache,其他的會(huì)不會(huì)消失?)、eAccelerator、xcache、APC …

使用APC實(shí)現(xiàn)Opcode緩存

APC提供兩種緩存功能,即緩存Opcode(目標(biāo)文件),我們稱之為apc_compiler_cache。同時(shí)它還提供一些接口用于PHP開(kāi)發(fā)人員將用戶數(shù)據(jù)駐留在內(nèi)存中,我們稱之為apc_user_cache。我們這里主要討論apc_compiler_cache的配置。

下載地址:http://pecl.php.net/package/APC

最新版本為APC-3.1.6.tgz

wget http://pecl.php.net/get/APC-3.1.6.tgz
tar -zxvf APC-3.1.6.tgz
cd APC-3.1.6
/home/ad/php/bin/phpize
./configure --enable-apc --enable-apc-mmap  --with-php-config=/home/ad/php/bin/php-config
make
make install

編輯php.ini,添加apc的配置

[apc]
extension=apc.so
apc.enabled=1
apc.shm_segments = 1
apc.shm_size = 128
apc.ttl = 0
apc.user_ttl = 7200
apc.num_files_hint = 1000
apc.write_lock=1
apc.stat = 0
apc.max_file_size=1M
apc.filters = a.php,b.php
apc.cache_by_default=1

配置說(shuō)明:

apc.enabled 開(kāi)啟apc 設(shè)置為0關(guān)閉,1為開(kāi)啟
apc.shm_segments 共享內(nèi)存塊數(shù)
apc.shm_size 共享內(nèi)存大小,但是是M
那么顯然共享內(nèi)存的總數(shù)就是apc.shm_segments*apc.shm_size
apc.num_files_hint 允許多少個(gè)opcode被緩存
apc.stat 為1的時(shí)候會(huì)自動(dòng)檢查opcode對(duì)應(yīng)的php文件是否有更新,有更新的話會(huì)自動(dòng)更新。設(shè)置為0的話就不會(huì)去檢查了這樣會(huì)提高apc的效率,但是要使php的修改生效的話就必須重啟apache了,或者使用函數(shù)apc_cache_clear()來(lái)清空緩存
apc.ttl opcode緩存的過(guò)期時(shí)間,設(shè)置為0表示不過(guò)期,如果不為0會(huì)檢查兩次請(qǐng)求之間的時(shí)間,如果時(shí)間大于設(shè)置值那么會(huì)更新opcode緩存
apc.write_lock 表示多個(gè)進(jìn)程同時(shí)更新一份opcode緩存的時(shí)候那么只讓最先的一個(gè)生效,可以有效避免寫(xiě)沖突
apc.max_file_size 超過(guò)設(shè)置值大小的文件不被緩存
apc.filters 需要特例的文件,多個(gè)文件用逗號(hào)(,)相隔
apc.filters 與 apc.cache_by_default結(jié)合使用,
當(dāng)apc.cache_by_default為1時(shí)apc.filters文件不被緩存,當(dāng)apc.cache_by_default為0時(shí)僅apc.filters文件被緩存

本文參考:

http://www.cnblogs.com/JohnAB...

http://www.cnblogs.com/Alight...

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

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

相關(guān)文章

  • PHP緩存Opcode緩存

    摘要:緩存之緩存什么是緩存當(dāng)解釋器完成對(duì)腳本代碼的分析后,便將他們聲稱可以直接運(yùn)行的中間代碼,也成為操作碼。同時(shí)它還提供一些接口用于開(kāi)發(fā)人員將用戶數(shù)據(jù)駐留在內(nèi)存中,我們稱之為。 PHP緩存之Opcode緩存 什么是Opcode緩存? 當(dāng)解釋器完成對(duì)腳本代碼的分析后,便將他們聲稱可以直接運(yùn)行的中間代碼,也成為操作碼(Operate Code, Opcode)。Opcode cache的目的是...

    Near_Li 評(píng)論0 收藏0
  • phpopcode緩存

    摘要:一般執(zhí)行過(guò)程是先檢查文件的簽名或者修改時(shí)間,以防文件有改動(dòng)。緩存通常都能夠大幅度地提升應(yīng)用程序的執(zhí)行速度。二有哪些緩存插件于年月中旬改名為,集成,其他的會(huì)不會(huì)消失三為什么使用緩存主要是為了減少重復(fù)編譯,從而減少和內(nèi)存的開(kāi)銷。 一、什么是opcode緩存 當(dāng)一個(gè) PHP 文件被解釋執(zhí)行的時(shí)候,首先是被編譯成名為 opcode (CPU 專用的機(jī)器語(yǔ)言指令)的中間代碼,然后才被底層的虛擬...

    zhangrxiang 評(píng)論0 收藏0
  • phpopcode緩存

    摘要:一般執(zhí)行過(guò)程是先檢查文件的簽名或者修改時(shí)間,以防文件有改動(dòng)。緩存通常都能夠大幅度地提升應(yīng)用程序的執(zhí)行速度。二有哪些緩存插件于年月中旬改名為,集成,其他的會(huì)不會(huì)消失三為什么使用緩存主要是為了減少重復(fù)編譯,從而減少和內(nèi)存的開(kāi)銷。 一、什么是opcode緩存 當(dāng)一個(gè) PHP 文件被解釋執(zhí)行的時(shí)候,首先是被編譯成名為 opcode (CPU 專用的機(jī)器語(yǔ)言指令)的中間代碼,然后才被底層的虛擬...

    codercao 評(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

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

0條評(píng)論

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