新聞中心
PHP文件緩存的速度一直是PHP程序員們關(guān)心的問(wèn)題,他們一直在探討著如何才能提高PHP文件緩存的效率來(lái)滿足自己的開(kāi)發(fā)需求。#t#

成都創(chuàng)新互聯(lián)公司專業(yè)為企業(yè)提供銅川網(wǎng)站建設(shè)、銅川做網(wǎng)站、銅川網(wǎng)站設(shè)計(jì)、銅川網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)與制作、銅川企業(yè)網(wǎng)站模板建站服務(wù),十余年銅川做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。
PHP文件緩存內(nèi)容保存格式主要有三種:
1.變量 var_export 格式化成PHP正常的賦值書(shū)寫(xiě)格式,用的時(shí)候直接include文件
2.變量 serialize 序列化之后保存,用的時(shí)候反序列化
3,變量 json_encode格式化之后保存,用的時(shí)候json_decode
一直以來(lái),我都以為第一種效率最高,因?yàn)槟鞘荘HP腳本解釋器解析PHP腳本的格式,原生的,應(yīng)該最快,至少讀取緩存的效率應(yīng)該是最高的,可是今天做了個(gè)測(cè)試,令我大跌眼鏡!原來(lái) serialize序列化效率才是最高的,不論是讀還是寫(xiě)!
下面是用來(lái)測(cè)試的PHP文件緩存的代碼:
- view plaincopy to clipboardprint?
- $st = microtime(1);
- for ($i=0;$i<1000;$i++){
- /*
- $file = var_export($_SERVER,1);
- $file = "";
- file_put_contents("data/in.php",$file);
- */
- include("data/in.php");
- }
- echo "include讀:".(microtime(1)-$st)." ";
- $st = microtime(1);
- for ($i=0;$i<1000;$i++){
- $file = file_put_contents("data/se.php"
- ,serialize($_SERVER));
- //$file = file_get_contents("data/se.php");
- //$file = unserialize($file);
- }
- echo "serialize寫(xiě):".(microtime(1)-$st)." ";
- $st = microtime(1);
- for ($i=0;$i<1000;$i++){
- //$file = file_put_contents("data/se.
- php",serialize($_SERVER));
- $file = file_get_contents("data/se.php");
- $file = unserialize($file);
- }
- echo "serialize讀:".(microtime(1)-$st)." ";
- $st = microtime(1);
- for ($i=0;$i<1000;$i++){
- $file = file_put_contents("data/js.php
- ",json_encode($_SERVER));
- //$file = file_get_contents("data/js.php");
- //$file = json_decode($file);
- }
- echo "json寫(xiě):".(microtime(1)-$st)." ";
- $st = microtime(1);
- for ($i=0;$i<1000;$i++){
- //$file = file_put_contents("data/js.
- php",json_encode($_SERVER));
- $file = file_get_contents("data/js.php");
- $file = json_decode($file);
- }
- echo "json讀:".(microtime(1)-$st)." ";
- $st = microtime(1);
- for ($i=0;$i<1000;$i++){
- /*
- $file = var_export($_SERVER,1);
- $file = "";
- file_put_contents("data/in.php",$file);
- */
- include("data/in.php");
- }
- echo "include讀:".(microtime(1)-$st)." ";
- $st = microtime(1);
- for ($i=0;$i<1000;$i++){
- $file = file_put_contents("data/se.
- php",serialize($_SERVER));
- //$file = file_get_contents("data/se.php");
- //$file = unserialize($file);
- }
- echo "serialize寫(xiě):".(microtime(1)-$st)." ";
- $st = microtime(1);
- for ($i=0;$i<1000;$i++){
- //$file = file_put_contents("data/se.
- php",serialize($_SERVER));
- $file = file_get_contents("data/se.php");
- $file = unserialize($file);
- }
- echo "serialize讀:".(microtime(1)-$st)." ";
- $st = microtime(1);
- for ($i=0;$i<1000;$i++){
- $file = file_put_contents("data/js.
- php",json_encode($_SERVER));
- //$file = file_get_contents("data/js.php");
- //$file = json_decode($file);
- }
- echo "json寫(xiě):".(microtime(1)-$st)." ";
- $st = microtime(1);
- for ($i=0;$i<1000;$i++){
- //$file = file_put_contents("data/js.
- php",json_encode($_SERVER));
- $file = file_get_contents("data/js.php");
- $file = json_decode($file);
- }
- echo "json讀:".(microtime(1)-$st)." ";
結(jié)果太神奇了!include寫(xiě):0.559882879257include讀:0.185745000839serialize寫(xiě):0.255033969879serialize讀:0.0853068828583json寫(xiě):0.284864902496json讀:0.145938873291 序列化是最快,無(wú)論讀或?qū)?,都是第一種的效率的兩倍,json比序列化的PHP文件緩存效率稍低,表現(xiàn)還可以!
如果撇開(kāi)文件讀寫(xiě)所耗費(fèi)的時(shí)間,他們的效率差別可能會(huì)更大!include那個(gè),雖然是PHP腳本賦值的格式,但是也是要分析解析文本,PHP腳本解釋器需要?jiǎng)佑谜麄€(gè)解釋器分析PHP腳本,而序列化不需要,只用啟用序列化文本分析就行了,所以PHP文件緩存效率更高。
新聞名稱:PHP文件緩存包含三種格式
當(dāng)前URL:http://m.fisionsoft.com.cn/article/cdhgipc.html


咨詢
建站咨詢
