国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

PHP緩存之Opcode緩存

Lucky_Boy / 1732人閱讀

摘要:緩存之緩存什么是緩存當解釋器完成對腳本代碼的分析后,便將他們聲稱可以直接運行的中間代碼,也成為操作碼。同時它還提供一些接口用于開發人員將用戶數據駐留在內存中,我們稱之為。

PHP緩存之Opcode緩存


什么是Opcode緩存?

當解釋器完成對腳本代碼的分析后,便將他們聲稱可以直接運行的中間代碼,也成為操作碼(Operate Code, Opcode)。Opcode cache的目的是避免重復編譯,減少CPU和內存的開銷。但是一般動態網站的性能瓶頸都在IO操作以及數據庫操作,那么Opcode緩存能夠帶來的優化效果是有限的。

Opcode緩存的原理是什么?

當請求PHP腳本時,會經歷以下幾個過程:  

Zend引擎從文件系統讀取文件、掃面器詞典和表達式、解析文件、創建要執行的計算機代碼(Opcode),最后執行Opcode。每一次請求都會執行以上步驟,如果我們的PHP沒有變化,納悶Opcode也應該是沒有變化的,所以不必要每次都重新生成Opcode。根據這個原理,我們可以把Opcode緩存下來,再次訪問相同文件時,可以直接從Opcode執行文件,啟用Opcode后文件的執行流程如下:

有哪些PHP Opcode緩存插件?

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

使用APC實現Opcode緩存

APC提供兩種緩存功能,即緩存Opcode(目標文件),我們稱之為apc_compiler_cache。同時它還提供一些接口用于PHP開發人員將用戶數據駐留在內存中,我們稱之為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

配置說明:

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

本文參考:

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

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

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/22351.html

相關文章

  • PHP緩存Opcode緩存

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

    Near_Li 評論0 收藏0
  • phpopcode緩存

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

    zhangrxiang 評論0 收藏0
  • phpopcode緩存

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

    codercao 評論0 收藏0
  • php系列框架的加速器Opcache

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

    lauren_liuling 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<