`
xuebingnanmm
  • 浏览: 172511 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

PHP文件缓存效率测试

    博客分类:
  • PHP
阅读更多

PHP文件缓存内容保存格式主要有三种:

            1.变量 var_export 格式化成PHP正常的赋值书写格式,用的时候直接include文件

            2.变量 serialize 序列化之后保存,用的时候反序列化

            3,变量 json_encode格式化之后保存,用的时候json_decode

        一直以来,我都以为第一种效率最高,因为那是PHP脚本解释器解析PHP脚本的格式,原生的,应该最快,至少读取缓存的效率应该是最高的,可是今天做了个测试,令我大跌眼镜!原来 serialize序列化效率才是最高的,不论是读还是写!

            下面是用来测试的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写:".(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写:".(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写:".(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写:".(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)." ";
 

 结果太神奇了!include写:0.559882879257include读:0.185745000839serialize写:0.255033969879serialize读:0.0853068828583json写:0.284864902496json读:0.145938873291 序列化是最快,无论读或写,都是第一种的效率的两倍,json比序列化效率稍低,表现还可以!如果撇开文件读写所耗费的时间,他们的效率差别可能会更大!include那个,虽然是PHP脚本赋值的格式,但是也是要分析解析文本,PHP脚本解释器需要动用整个解释器分析PHP脚本,而序列化不需要,只用启用序列化文本分析就行了,所以效率更高。

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/fzzwake/archive/2008/07/26/2714975.aspx

分享到:
评论

相关推荐

    PHP文件缓存内容保存格式实例分析

    本文实例讲述了PHP文件缓存内容保存格式,...互联网上测试结果是:serialize格式的文件解析效率大于Json,Json的解析效率大于PHP正常赋值。 所以我们要是缓存数据建议采用序列化的形式解析数据会更快。 2、PHP文件缓

    justreq:用于测试HTTP或HTTPS接口的缓存代理服务器。 永不脱机的测试接口服务器。 模拟服务器

    对ES6,ES7的支持可以提高效率。 支持CORS(跨域资源共享),因此它可以用于Web前端。 没有侵入性代码,请勿向我们的项目注入任何代码。 安装 首先安装 ,然后运行此命令以安装JUSTREQ的CLI npm install -g ...

    PHP模板引擎PHPnew v5.0.rar

    PHPnew 5.0 在原有基础进行更大的更新及结构变化,使得速度及效率都有明显的提高.同时为程序开发配备常用函数及设置,开发中仅需要直接采用即可.新版本拥有着缓存,模板重编,及模板缓存几个大的功能,同时,对于模板缓存,...

    基于PHP的数据库负载均衡插件(读)

    用PHP写的可对读数据库进行负载均衡的插件,在连接数据库之前调用该插件的Get_con函数可获取数据库端连接地址,用户名密码等,通过轮询和权重两种算法(后面会加上LRU算法)进行数据库连接...(并:未进行效率测试)

    WordPress主题MX互动展示型主题 v2.2

    根据多次测试,在单核 1G 硬件上,不使用静态文件缓存,执行一次只需 50ms (使用 WordPoi 版本)。使用 PoiCache (静态文件缓存)后仅需 3 ms,效率之高令人印象深刻。基于 HTML5 开发,使用现代 DOM 操作接口;...

    SpeedPHP 3.1.89 UTF8.zip

    去除文件缓存多级目录的处理,因其会带来管理上的开销。 修正spAccessCache驱动在3.1.66中存在的两个问题,并修改部分注释 修改升级说明文档 smarty类库更新到3.0.8版 修正部分已发现的bug 修正了bae平台的一些...

    WordPress主题MX互动展示型主题 v2.2.zip

    根据多次测试,在单核 1G 硬件上,不使用静态文件缓存,执行一次只需 50ms (使用 WordPoi 版本)。使用 PoiCache (静态文件缓存)后仅需 3 ms,效率之高令人印象深刻。 基于 HTML5 开发,使用现代 DOM 操作接口;...

    jmapcms网站开发系统v1.2完整包

    更新方法,将更新包覆盖以前的文件即可,如果对 Lib/Home/HomeAction.class.php文件有修改的请自行修改. 更新完后可对已有的模型进行js修改 开发中心-&gt;模型管理-&gt;管理字段-&gt;修改字段-&gt;js判断 保存后重新生成页面,清空...

    php开源框架 CmlPHP.zip

    CmlPHP V2.x 是基于php5.3 版本(已经测试过php7)开发的MVC/HMVC/MVSC/HMVSC框架,支持composer、分布式数据库、分布式缓存,支持文件、memcache、redis、apc等缓存,支持多种url模式、URL路由[RESTful],支持多项目...

    XGCMS内容管理系统 2.0.1 beta.zip

    XGCMS内容管理系统基于国内优秀的PHP框架XIUNO PHP开发,为了开发XGCMS内容管理系统,作者已连续3个月没有任何收入,经过多个日夜的不断努力系统终于基本成型,目前发布测试版,希望大家能够多提供意见建议、反馈BUG...

    Discuz! X2.5 正式版 繁体中文 BIG5 20130222

    产品的现有架构,仅数据库操作相关的架构优化,就涉及317个程序文件的4525处代码片段修改,并新增DB类文件217个。从Discuz! X2.5起,数据读写层已经实现全面独立封装。新版支持以表为单位的分服务器部署;数据表全面...

    LOGA 建站系统升级程序 v5.3.2 至v5.3.3

    取简洁,追求效率之意。本系统基于 PHP + MySQL 平台开发,结构简洁,运行速度极快。LOGA 功能特点[PFA 内核]简洁、优雅的高质量代码具有极高的通用性和扩展性。[多语言支持]UTF-8 编码,语言侦测,多语言支持,方便...

    修改Zend引擎实现PHP源码加密的原理及实践

    一、基本原理 考虑截获PHP读取源文件的接口。一开始,我考虑从Apache和PHP 之间的... 双缘敬老院 由此,重新考虑截获PHP读取文件并装载至缓存的过程,经过费力的寻找,发现在Zend引擎中zend-scanner.c是做此处理的

    CMSware v2.0 RC2 测试版

     全新的动态发布+缓存系统,加缓存效率提升可达3000%,缓存系统基于事件触发机制(以前是基于时间触发),无论从资源占用还是缓存有效性来看,都是非常优秀的。  CMS:COMMENT调用,无论是静态发布还是动态发布,都...

    ASP.NET2.0高级编程(第4版)1/6

    20.5 测试SQL Server高速缓存 禁用功能700  20.5.1 给页面添加多个表702  20.5.2 给SQL Server 高速缓存依赖性和 Request对象建立关联702  20.5.3 给SQL Server 高速缓存依赖性 和Cache对象建立关联703 20.6 小结...

    手机 pdf 阅读器

    阅读设置中增加一个“文件缓存”选项,默认情况下是开启的,在NOKIA手机上会提高UMD等文件的表现,但由于测试并不充足,如果程序经常在阅读时出错,请关闭该选项(其它手机是否开启该选项并无明显的影响) ...

    LOGA 4.X UTF-8 (v4.1.0_to_v4.1.1) 升级程序.zip

    取简洁,追求效率之意。本日志系统基PHP MySQL平台开发,结构简洁,运行速度极快。   LOGA 4.X 功能特点: 1. 多语言支持,方便国际化 2. 专业简洁的界面设计,良好的用户体验 3. 简单易用的模板引擎,界面设计...

    ORACLE9i_优化设计与系统调整

    §1.6 块缓存(数据高速缓冲区) 33 §1.7 数据库写入进程 34 §1.8 日志写进程 34 §1.9 数据库检查点 34 §1.10 归档处理 35 §1.11 程序全局区(PGA) 35 第2章 警告日志与跟踪日志 35 §2.1 警告与日志文件 36 §...

    Guava 16.0 API (CHM格式)

    New collection types(新集合类型):JDK collections 没有的一些集合类型,主要有:multisets,multimaps,tables, bidirectional maps等等  3. Powerful collection utilities(强大的集合工具类): java.util....

    OElove_v3.0

    综合各大架构的优点为一身而设计的精简级、精练级的PHP框架,在MVC模式基础上进行延伸的分层体系架构,简单的代码写健壮的程序,采用高效率的代码、全面的缓存及数据优化使您的网站承载能力达到千万级别。...

Global site tag (gtag.js) - Google Analytics