PHP文件緩存的性能測試

前言:

在開發MooPHP的過程中,爲了尋找更爲高效的緩存方式,對兩種最常用的緩存方式進行了測試。

PHP常用緩存方式:

第一種,把需要緩存的數據進行處理,形成PHP可以直接執行的文件。在需要緩存數據的時候,通過include方式引入,並使用。

第二種,把需要的數據通過serialize函數序列化後直接保存到文件。在需要使用緩存數據的時候,通過反序列化讀入文件內容並複制給需要的變量,然後使用。

測試結果:

通過測試我們發現,第二種也就是serialize緩存數據的方式更加高效。(數據略去,最後提供了文章地址下載,大家可以自行測試)

原因分析:

include方式讀取緩存的時候,PHP需要執行幾個過程

1.讀取文件

2.解析所Include的文件

3.執行,給變量賦值

而serialize序列化方式讀取緩存的時候:

1.讀取數據

2.反序列化數據內容

3.給變量賦值

從以上內容對比的話,可能是由于解析PHP文件內的數組需要的時間超過unserialize反序列化數組的時間。如果你有興趣可以查看《PHP filesystem相關函數和include require的性能效率研究》:http://www.ccvita.com/163.html

測試文件代碼:

下載地址:MooPHP-CacheTest.zip

原創地址:http://www.ccvita.com/311.html有新的研究心得會在這裏更新。

CacheTest_IncludeFile.php

CacheTest_SerializeFile.php

總結分析:

第一種,include緩存的方式

優點:增加數據的保密性,和安全性,緩存內容不會被外界發現。

缺點:速度相對較慢。

用途:保存禁止系統外部得知的數據,比如web系統的設置,甚至MySQL信息等的保存

第二種,serialize序列化緩存的方式

優點:速度較快。

缺點:緩存系統文件路徑一點曝光,緩存內容會泄露。

用途:緩存最新文章,相關文章等不擔心外部得知的數據的時候,可以使用這種方式。

備注:

當裝了ea、apc等PHP內存緩存之後,第一種通過include讀取緩存的方式速度會高于第二種serialize序列化緩存的方式。所以在MooPHP框架中,我們對于非敏感信息采用第二種方式緩存;敏感信息采用第一種方式緩存。有關MooPHP的介紹可以參考《MooPHP框架簡介》這篇文章(地址:http://www.ccvita.com/295.html

 
使用APC緩存優化PHP程序
Alternative PHP Cache(APC)是 PHP 的一個免費公開的優化代碼緩存。它用來提供免費,公開並且強健的架構來緩存和優化 PHP 的中間代碼。APC 官方網站爲Windows下的拓展模塊下載地址在 Windows 下,APC 要求有 c:\tm...查看完整版>>使用APC緩存優化PHP程序
 
PHP-Javascript“返回上一頁”無緩存問題
您好,歡迎浏覽本站,如果您是第一次訪問本站,歡迎訂閱本站的RSS,隨時獲取本站最新資訊。RSS: 很多用PHP寫腳本的朋友都會遇到這樣的問題,比如一個注冊頁面(不使用任何AJAX),需要填寫賬號密碼等信息,填寫完後需...查看完整版>>PHP-Javascript“返回上一頁”無緩存問題
 
Weblogic中使用持久緩存技術優化CMP性能
當前,在持久性方面CMP(容器管理持久性)雖然不是很流行的選擇,但它仍然是企業環境中惟一立即可用的持久性框架。盡管不如hibernate或SQL Maps那麽有吸引力,但領先的應用服務器(如BEA Weblogic)中的CMP2.X實現也...查看完整版>>Weblogic中使用持久緩存技術優化CMP性能
 
調整緩沖區高速緩存(Buffer Cache)的性能
  調整緩沖區高速緩存(Buffer Cache)的性能    Buffer cache由數據塊組成。    1. Buffer cache的工作原理    LRU列表:MRU ………………. LRU。(全表掃描FTS放在LRU端。)   ...查看完整版>>調整緩沖區高速緩存(Buffer Cache)的性能
 
提高系統性能 在Windows Vista中啓用大緩存
提高系統性能 在Windows Vista中啓用大緩存
  Windows Vista操作系統中提高系統緩存容量可以讓電腦性能得到提升。本文介紹了在 Windows Vista 下修改注冊表啓用大緩存的方法。  操作步驟   注意 : 如果隨意改動注冊表,會導致電腦不能正常工作,請謹慎使...查看完整版>>提高系統性能 在Windows Vista中啓用大緩存