程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> PHP文件緩存的性能測試

PHP文件緩存的性能測試

編輯:關於PHP編程

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

PHP常用緩存方式:
第一種,把需要緩存的數據進行處理,形成PHP可以直接執行的文件。在需要緩存數據的時候,通過include方式引入,並使用。
第二種,把需要的數據通過serialize函數序列化後直接保存到文件。在需要使用緩存數據的時候,通過反序列化讀入文件內容並復制給需要的變量,然後使用。

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

原因分析:
include方式讀取緩存的時候,PHP需要執行幾個過程
1.讀取文件
2.解析所Include的文件
3.執行,給變量賦值

而serialize序列化方式讀取緩存的時候:
1.讀取數據
2.反序列化數據內容
3.給變量賦值

從以上內容對比的話,可能是由於解析PHP文件內的數組需要的時間超過unserialize反序列化數組的時間。如果你有興趣可以查看《PHP filesystem相關函數和include require的性能效率研究》:html">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)

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved