| 導購 | 订阅 | 在线投稿
分享
 
 
當前位置: 王朝網路 >> php >> 使用APC緩存優化PHP程序
 

使用APC緩存優化PHP程序

2008-12-19 08:07:49  編輯來源:互聯網  简体版  手機版  評論  字體: ||
 
 
  Alternative PHP Cache(APC)是 PHP 的一個免費公開的優化代碼緩存。它用來提供免費,公開並且強健的架構來緩存和優化 PHP 的中間代碼。

  APC 官方網站爲http://pecl.php.net/package/apc

  Windows下的拓展模塊下載地址http://www.sitebuddy.com/php/accelerators/apc_windows_binaries_builds

  在 Windows 下,APC 要求有 c:\tmp 目錄,並且該目錄要對 Web 服務器進程可寫。

  1、安裝

  以PHP extension 形式安裝

  2、配置

  apc.enabled boolean

  apc.optimization optimization

  選項在腳本中可以改變

  APC PHP.ini配置選項詳解

  [APC]

  ; Alternative PHP Cache 用于緩存和優化PHP中間代碼

  apc.cache_by_default = On

  ;SYS

  ; 是否默認對所有文件啓用緩沖。

  ; 若設爲Off並與以加號開頭的apc.filters指令一起用,則文件僅在匹配過濾器時才被緩存。

  apc.enable_cli = Off

  ;SYS

  ; 是否爲CLI版本啓用APC功能,僅用于測試和調試目的才打開此指令。

  apc.enabled = On

  ; 是否啓用APC,如果APC被靜態編譯進PHP又想禁用它,這是唯一的辦法。

  apc.file_update_protection = 2

  ;SYS

  ; 當你在一個運行中的服務器上修改文件時,你應當執行原子操作。

  ; 也就是先寫進一個臨時文件,然後將該文件重命名(mv)到最終的名字。

  ; 文本編輯器以及 cp, tar 等程序卻並不是這樣操作的,從而導致有可能緩沖了殘缺的文件。

  ; 默認值 2 表示在訪問文件時如果發現修改時間距離訪問時間小于 2 秒則不做緩沖。

  ; 那個不幸的訪問者可能得到殘缺的內容,但是這種壞影響卻不會通過緩存擴大化。

  ; 如果你能確保所有的更新操作都是原子操作,那麽可以用 0 關閉此特性。

  ; 如果你的系統由于大量的IO操作導致更新緩慢,你就需要增大此值。

  apc.filters =

  ;SYS

  ; 一個以逗號分隔的POSIX擴展正則表達式列表。

  ; 如果源文件名與任意一個模式匹配,則該文件不被緩存。

  ; 注意,用來匹配的文件名是傳遞給include/require的文件名,而不是絕對路徑。

  ; 如果正則表達式的第一個字符是"+"則意味著任何匹配表達式的文件會被緩存,

  ; 如果第一個字符是"-"則任何匹配項都不會被緩存。"-"是默認值,可以省略掉。

  apc.ttl = 0

  ;SYS

  ; 緩存條目在緩沖區中允許逗留的秒數。0 表示永不超時。建議值爲7200~36000。

  ; 設爲 0 意味著緩沖區有可能被舊的緩存條目填滿,從而導致無法緩存新條目。

  apc.user_ttl = 0

  ;SYS

  ; 類似于apc.ttl,只是針對每個用戶而言,建議值爲7200~36000。

  ; 設爲 0 意味著緩沖區有可能被舊的緩存條目填滿,從而導致無法緩存新條目。

  apc.gc_ttl = 3600

  ;SYS

  ; 緩存條目在垃圾回收表中能夠存在的秒數。

  ; 此值提供了一個安全措施,即使一個服務器進程在執行緩存的源文件時崩潰,

  ; 而且該源文件已經被修改,爲舊版本分配的內存也不會被回收,直到達到此TTL值爲止。

  ; 設爲零將禁用此特性。

  apc.include_once_override = Off

  ;SYS

  ; 請保持爲Off,否則可能導致意想不到的結果。

  apc.max_file_size = 1M

  ;SYS

  ; 禁止大于此尺寸的文件被緩存。

  apc.mmap_file_mask =

  ;SYS

  ; 如果使用–enable-mmap(默認啓用)爲APC編譯了MMAP支持,

  ; 這裏的值就是傳遞給mmap模塊的mktemp風格的文件掩碼(建議值爲"/tmp/apc.XXXXXX")。

  ; 該掩碼用于決定內存映射區域是否要被file-backed或者shared memory backed。

  ; 對于直接的file-backed內存映射,要設置成"/tmp/apc.XXXXXX"的樣子(恰好6個X)。

  ; 要使用POSIX風格的shm_open/mmap就需要設置成"/apc.shm.XXXXXX"的樣子。

  ; 你還可以設爲"/dev/zero"來爲匿名映射的內存使用內核的"/dev/zero"接口。

  ; 不定義此指令則表示強制使用匿名映射。

  apc.num_files_hint = 1000

  ;SYS

  ; Web服務器上可能被包含或被請求的不同源文件的大致數量(建議值爲1024~4096)。

  ; 如果你不能確定,則設爲 0 ;此設定主要用于擁有數千個源文件的站點。

  apc.optimization = 0

  ; 優化級別(建議值爲 0 ) 。

  ; 正整數值表示啓用優化器,值越高則使用越激進的優化。

  ; 更高的值可能有非常有限的速度提升,但目前尚在試驗中。

  apc.report_autofilter = Off

  ;SYS

  ; 是否記錄所有由于early/late binding原因而自動未被緩存的腳本。

  apc.shm_segments = 1

  ;SYS

  ; 爲編譯器緩沖區分配的共享內存塊數量(建議值爲1)。

  ; 如果APC耗盡了共享內存,並且已將apc.shm_size指令設爲系統允許的最大值,

  ; 你可以嘗試增大此值。

  apc.shm_size = 30

  ;SYS

  ; 每個共享內存塊的大小(以MB爲單位,建議值爲128~256)。

  ; 有些系統(包括大多數BSD變種)默認的共享內存塊大小非常少。

  apc.slam_defense = 0

  ;SYS(反對使用該指令,建議該用apc.write_lock指令)

  ; 在非常繁忙的服務器上,無論是啓動服務還是修改文件,

  ; 都可能由于多個進程企圖同時緩存一個文件而導致競爭條件。

  ; 這個指令用于設置進程在處理未被緩存的文件時跳過緩存步驟的百分率。

  ; 比如設爲75表示在遇到未被緩存的文件時有75%的概率不進行緩存,從而減少碰撞幾率。

  ; 鼓勵設爲 0 來禁用這個特性。

  apc.stat = On

  ;SYS

  ; 是否啓用腳本更新檢查。

  ; 改變這個指令值要非常小心。

  ; 默認值 On 表示APC在每次請求腳本時都檢查腳本是否被更新,

  ; 如果被更新則自動重新編譯和緩存編譯後的內容。但這樣做對性能有不利影響。

  ; 如果設爲 Off 則表示不進行檢查,從而使性能得到大幅提高。

  ; 但是爲了使更新的內容生效,你必須重啓Web服務器。

  ; 這個指令對于include/require的文件同樣有效。但是需要注意的是,

  ; 如果你使用的是相對路徑,APC就必須在每一次include/require時都進行檢查以定位文件。

  ; 而使用絕對路徑則可以跳過檢查,所以鼓勵你使用絕對路徑進行include/require操作。

  apc.user_entries_hint = 100

  ;SYS

  ; 類似于num_files_hint指令,只是針對每個不同用戶而言。

  ; 如果你不能確定,則設爲 0 。

  apc.write_lock = On

  ;SYS

  ; 是否啓用寫入鎖。

  ; 在非常繁忙的服務器上,無論是啓動服務還是修改文件,

  ; 都可能由于多個進程企圖同時緩存一個文件而導致競爭條件。

  ; 啓用該指令可以避免競爭條件的出現。

  apc.rfc1867 = Off

  ;SYS

  ; 打開該指令後,對于每個恰好在file字段之前含有APC_UPLOAD_PROGRESS字段的上傳文件,

  ; APC都將自動創建一個upload_的用戶緩存條目(就是APC_UPLOAD_PROGRESS字段值)。

  3、函數

  apc_cache_info - Retrieves cached information (and meta-data) from APC's data store

  apc_clear_cache - Clears the APC cache

  apc_define_constants - Defines a set of constants for later retrieval and mass-definition

  apc_delete - Removes a stored variable from the cache

  apc_fetch - Fetch a stored variable from the cache

  apc_load_constants - Loads a set of constants from the cache

  apc_sma_info - Retrieves APC's Shared Memory Allocation information

  apc_store - Cache a variable in the data store

  apc的用法比較簡單,只有幾個函數,列舉如下。

  apc_cache_info () 返回緩存信息

  apc_clear_cache() 清除apc緩存內容。

  默認(無參數)時,只清除系統緩存,要清除用戶緩存,需用‚user『參數。

  apc_define_constants ( string key, array constants [, bool case_sensitive] ) 將數組constants以常量加入緩存。

  apc_load_constants (string Key)。

  取出常量緩存。

  apc_store ( string key, mixed var [, int ttl] )。

  在緩存中保存數據。

  apc_fetch ( string key )。

  獲得apc_store保存的緩存內容

  apc_delete ( string key )。

  刪除apc_store保存的內容。

  apc的管理:

  到pecl.php.net下載apc源碼包有個apc.php,copy到你的web server可以訪問到的地方,浏覽即可訪問。

  管理界面功能有:

  1. Refresh Data

  2. View Host Stats

  3. System Cache Entries

  4. User Cache Entries

  5. Version Check
 
 
 
上一篇《PHP設置COOKIE保留時間爲浏覽器進程》
下一篇《使用APC最優化PHP》
 
 
 
日版寵物情人插曲《Winding Road》歌詞

日版寵物情人2017的插曲,很帶節奏感,日語的,女生唱的。 最後聽見是在第8集的時候女主手割傷了,然後男主用嘴幫她吸了一下,插曲就出來了。 歌手:Def...

兄弟共妻,我成了他們夜裏的美食

老鍾家的兩個兒子很特別,就是跟其他的人不太一樣,魔一般的執著。兄弟倆都到了要結婚的年齡了,不管自家老爹怎麽磨破嘴皮子,兄弟倆說不娶就不娶,老父母爲兄弟兩操碎了心...

如何磨出破洞牛仔褲?牛仔褲怎麽剪破洞?

把牛仔褲磨出有線的破洞 1、具體工具就是磨腳石,下面墊一個硬物,然後用磨腳石一直磨一直磨,到把那塊磨薄了,用手撕開就好了。出來的洞啊很自然的。需要貓須的話調幾...

我就是掃描下圖得到了敬業福和愛國福

先來看下敬業福和愛國福 今年春節,支付寶再次推出了“五福紅包”活動,表示要“把欠大家的敬業福都還給大家”。 今天該活動正式啓動,和去年一樣,需要收集“五福”...

冰箱異味産生的原因和臭味去除的方法

有時候我們打開冰箱就會聞到一股異味,冰箱裏的這種異味是因爲一些物質發出的氣味的混合體,聞起來讓人惡心。 産生這些異味的主要原因有以下幾點。 1、很多人有這種習...

《極品家丁》1-31集大結局分集劇情介紹

簡介 《極品家丁》講述了現代白領林晚榮無意回到古代金陵,並追隨蕭二小姐化名“林三”進入蕭府,不料卻陰差陽錯上演了一出低級家丁拼搏上位的“林三升職記”。...

李溪芮《極品家丁》片尾曲《你就是我最愛的寶寶》歌詞

你就是我最愛的寶寶 - 李溪芮 (電視劇《極品家丁》片尾曲) 作詞:常馨內 作曲:常馨內 你的眉 又鬼馬的挑 你的嘴 又壞壞的笑 上一秒吵鬧 下...

烏梅的功效與作用以及烏梅的食用禁忌有哪些?

烏梅,又稱春梅,中醫認爲,烏梅味酸,性溫,無毒,具有安心、除熱、下氣、祛痰、止渴調中、殺蟲的功效,治肢體痛、肺痨病。烏梅泡水喝能治傷寒煩熱、止吐瀉,與幹姜一起制...

什麽是脂肪粒?如何消除臉部脂肪粒?

什麽是脂肪粒 在我們的臉上總會長一個個像脂肪的小顆粒,弄也弄不掉,而且顔色還是白白的。它既不是粉刺也不是其他的任何痘痘,它就是脂肪粒。 脂肪粒雖然也是由油脂...

網絡安全治理:國家安全保障的主要方向是打擊犯罪,而不是處置和懲罰受害者

來源:中國青年報 新的攻擊方法不斷湧現,黑客幾乎永遠占據網絡攻擊的上風,我們不可能通過技術手段杜絕網絡攻擊。國家安全保障的主要方向是打擊犯罪,而不是處置和懲罰...

 
 
 
Alternative PHP Cache(APC)是 PHP 的一個免費公開的優化代碼緩存。它用來提供免費,公開並且強健的架構來緩存和優化 PHP 的中間代碼。 APC 官方網站爲[url=http://pecl.php.net/package/apc]http://pecl.php.net/package/apc[/url] Windows下的拓展模塊下載地址[url=http://www.sitebuddy.com/php/accelerators/apc_windows_binaries_builds]http://www.sitebuddy.com/php/accelerators/apc_windows_binaries_builds[/url] 在 Windows 下,APC 要求有 c:\tmp 目錄,並且該目錄要對 Web 服務器進程可寫。 1、安裝 以PHP extension 形式安裝 2、配置 apc.enabled boolean apc.optimization optimization 選項在腳本中可以改變 APC PHP.ini配置選項詳解 [APC] ; Alternative PHP Cache 用于緩存和優化PHP中間代碼 apc.cache_by_default = On ;SYS ; 是否默認對所有文件啓用緩沖。 ; 若設爲Off並與以加號開頭的apc.filters指令一起用,則文件僅在匹配過濾器時才被緩存。 apc.enable_cli = Off ;SYS ; 是否爲CLI版本啓用APC功能,僅用于測試和調試目的才打開此指令。 apc.enabled = On ; 是否啓用APC,如果APC被靜態編譯進PHP又想禁用它,這是唯一的辦法。 apc.file_update_protection = 2 ;SYS ; 當你在一個運行中的服務器上修改文件時,你應當執行原子操作。 ; 也就是先寫進一個臨時文件,然後將該文件重命名(mv)到最終的名字。 ; 文本編輯器以及 cp, tar 等程序卻並不是這樣操作的,從而導致有可能緩沖了殘缺的文件。 ; 默認值 2 表示在訪問文件時如果發現修改時間距離訪問時間小于 2 秒則不做緩沖。 ; 那個不幸的訪問者可能得到殘缺的內容,但是這種壞影響卻不會通過緩存擴大化。 ; 如果你能確保所有的更新操作都是原子操作,那麽可以用 0 關閉此特性。 ; 如果你的系統由于大量的IO操作導致更新緩慢,你就需要增大此值。 apc.filters = ;SYS ; 一個以逗號分隔的POSIX擴展正則表達式列表。 ; 如果源文件名與任意一個模式匹配,則該文件不被緩存。 ; 注意,用來匹配的文件名是傳遞給include/require的文件名,而不是絕對路徑。 ; 如果正則表達式的第一個字符是"+"則意味著任何匹配表達式的文件會被緩存, ; 如果第一個字符是"-"則任何匹配項都不會被緩存。"-"是默認值,可以省略掉。 apc.ttl = 0 ;SYS ; 緩存條目在緩沖區中允許逗留的秒數。0 表示永不超時。建議值爲7200~36000。 ; 設爲 0 意味著緩沖區有可能被舊的緩存條目填滿,從而導致無法緩存新條目。 apc.user_ttl = 0 ;SYS ; 類似于apc.ttl,只是針對每個用戶而言,建議值爲7200~36000。 ; 設爲 0 意味著緩沖區有可能被舊的緩存條目填滿,從而導致無法緩存新條目。 apc.gc_ttl = 3600 ;SYS ; 緩存條目在垃圾回收表中能夠存在的秒數。 ; 此值提供了一個安全措施,即使一個服務器進程在執行緩存的源文件時崩潰, ; 而且該源文件已經被修改,爲舊版本分配的內存也不會被回收,直到達到此TTL值爲止。 ; 設爲零將禁用此特性。 apc.include_once_override = Off ;SYS ; 請保持爲Off,否則可能導致意想不到的結果。 apc.max_file_size = 1M ;SYS ; 禁止大于此尺寸的文件被緩存。 apc.mmap_file_mask = ;SYS ; 如果使用–enable-mmap(默認啓用)爲APC編譯了MMAP支持, ; 這裏的值就是傳遞給mmap模塊的mktemp風格的文件掩碼(建議值爲"/tmp/apc.XXXXXX")。 ; 該掩碼用于決定內存映射區域是否要被file-backed或者shared memory backed。 ; 對于直接的file-backed內存映射,要設置成"/tmp/apc.XXXXXX"的樣子(恰好6個X)。 ; 要使用POSIX風格的shm_open/mmap就需要設置成"/apc.shm.XXXXXX"的樣子。 ; 你還可以設爲"/dev/zero"來爲匿名映射的內存使用內核的"/dev/zero"接口。 ; 不定義此指令則表示強制使用匿名映射。 apc.num_files_hint = 1000 ;SYS ; Web服務器上可能被包含或被請求的不同源文件的大致數量(建議值爲1024~4096)。 ; 如果你不能確定,則設爲 0 ;此設定主要用于擁有數千個源文件的站點。 apc.optimization = 0 ; 優化級別(建議值爲 0 ) 。 ; 正整數值表示啓用優化器,值越高則使用越激進的優化。 ; 更高的值可能有非常有限的速度提升,但目前尚在試驗中。 apc.report_autofilter = Off ;SYS ; 是否記錄所有由于early/late binding原因而自動未被緩存的腳本。 apc.shm_segments = 1 ;SYS ; 爲編譯器緩沖區分配的共享內存塊數量(建議值爲1)。 ; 如果APC耗盡了共享內存,並且已將apc.shm_size指令設爲系統允許的最大值, ; 你可以嘗試增大此值。 apc.shm_size = 30 ;SYS ; 每個共享內存塊的大小(以MB爲單位,建議值爲128~256)。 ; 有些系統(包括大多數BSD變種)默認的共享內存塊大小非常少。 apc.slam_defense = 0 ;SYS(反對使用該指令,建議該用apc.write_lock指令) ; 在非常繁忙的服務器上,無論是啓動服務還是修改文件, ; 都可能由于多個進程企圖同時緩存一個文件而導致競爭條件。 ; 這個指令用于設置進程在處理未被緩存的文件時跳過緩存步驟的百分率。 ; 比如設爲75表示在遇到未被緩存的文件時有75%的概率不進行緩存,從而減少碰撞幾率。 ; 鼓勵設爲 0 來禁用這個特性。 apc.stat = On ;SYS ; 是否啓用腳本更新檢查。 ; 改變這個指令值要非常小心。 ; 默認值 On 表示APC在每次請求腳本時都檢查腳本是否被更新, ; 如果被更新則自動重新編譯和緩存編譯後的內容。但這樣做對性能有不利影響。 ; 如果設爲 Off 則表示不進行檢查,從而使性能得到大幅提高。 ; 但是爲了使更新的內容生效,你必須重啓Web服務器。 ; 這個指令對于include/require的文件同樣有效。但是需要注意的是, ; 如果你使用的是相對路徑,APC就必須在每一次include/require時都進行檢查以定位文件。 ; 而使用絕對路徑則可以跳過檢查,所以鼓勵你使用絕對路徑進行include/require操作。 apc.user_entries_hint = 100 ;SYS ; 類似于num_files_hint指令,只是針對每個不同用戶而言。 ; 如果你不能確定,則設爲 0 。 apc.write_lock = On ;SYS ; 是否啓用寫入鎖。 ; 在非常繁忙的服務器上,無論是啓動服務還是修改文件, ; 都可能由于多個進程企圖同時緩存一個文件而導致競爭條件。 ; 啓用該指令可以避免競爭條件的出現。 apc.rfc1867 = Off ;SYS ; 打開該指令後,對于每個恰好在file字段之前含有APC_UPLOAD_PROGRESS字段的上傳文件, ; APC都將自動創建一個upload_的用戶緩存條目(就是APC_UPLOAD_PROGRESS字段值)。 3、函數 apc_cache_info - Retrieves cached information (and meta-data) from APC's data store apc_clear_cache - Clears the APC cache apc_define_constants - Defines a set of constants for later retrieval and mass-definition apc_delete - Removes a stored variable from the cache apc_fetch - Fetch a stored variable from the cache apc_load_constants - Loads a set of constants from the cache apc_sma_info - Retrieves APC's Shared Memory Allocation information apc_store - Cache a variable in the data store apc的用法比較簡單,只有幾個函數,列舉如下。 apc_cache_info () 返回緩存信息 apc_clear_cache() 清除apc緩存內容。 默認(無參數)時,只清除系統緩存,要清除用戶緩存,需用‚user『參數。 apc_define_constants ( string key, array constants [, bool case_sensitive] ) 將數組constants以常量加入緩存。 apc_load_constants (string Key)。 取出常量緩存。 apc_store ( string key, mixed var [, int ttl] )。 在緩存中保存數據。 apc_fetch ( string key )。 獲得apc_store保存的緩存內容 apc_delete ( string key )。 刪除apc_store保存的內容。 apc的管理: 到pecl.php.net下載apc源碼包有個apc.php,copy到你的web server可以訪問到的地方,浏覽即可訪問。 管理界面功能有: 1. Refresh Data 2. View Host Stats 3. System Cache Entries 4. User Cache Entries 5. Version Check
󰈣󰈤
 
 
 
  免責聲明:本文僅代表作者個人觀點,與王朝網路無關。王朝網路登載此文出於傳遞更多信息之目的,並不意味著贊同其觀點或證實其描述,其原創性以及文中陳述文字和內容未經本站證實,對本文以及其中全部或者部分內容、文字的真實性、完整性、及時性本站不作任何保證或承諾,請讀者僅作參考,並請自行核實相關內容。
 
 
夏末午後的美麗女生
天生麗質_唯美動人
清新素雅的靓麗女生
完美絕倫_秀色可餐
芙蓉古鎮(一)
就是不一樣的街燈&#;
百態
荷一組(三張)
 
>>返回首頁<<
 
 熱帖排行
 
 
 
 
© 2005- 王朝網路 版權所有