`
xuebingnanmm
  • 浏览: 175230 次
  • 性别: 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效率测试方法,以及如何利用`run_time_test.php`和`demo.php`这两个文件进行测试实践。 首先,我们要了解常见的PHP效率测试方法。一种基本的测试方式是使用内置的`microtime()`函数,它能够提供高...

    PHP 文件缓存的性能测试

    ### PHP 文件缓存的性能测试知识点详解 #### 一、PHP 文件缓存概述 PHP 文件缓存是一种将数据存储在本地文件系统中的方法,目的是为了提高应用的性能和响应速度。当用户请求相同的数据时,如果这些数据已经被缓存...

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

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

    易语言测试写出文件速度源码,易语言测试文件写入速度

    易语言是一种专为中国人设计的...通过对易语言源码的分析和理解,我们可以学习到如何在易语言环境中有效地进行文件操作,同时也能掌握一些性能优化和数据处理的技巧,这对于提升软件的运行效率和用户体验具有重要意义。

    MSSQL缓存.zip

    为了最大化缓存效率,DBA可以进行一些优化,如调整缓存大小、监控内存使用、优化查询以减少缓存污染等。 9. 查询存储(Query Store): 自SQL Server 2016引入,查询存储记录了查询执行计划及其统计信息,有助于...

    C#动态清理缓存IE6Clear

    如果是一个源码文件,我们可以期待它包含了一些关键的C#类和方法,如`ClearCache()`,用来调用系统命令或直接操作文件系统来完成清理任务。如果是一个可执行文件,那么它可以直接运行在支持.NET框架的系统上,执行...

    平滑重启使PHP文件有效测试共4页.pdf.zip

    PHP文件的有效测试则是确保代码正确运行和优化性能的关键环节。在这个主题中,我们将深入探讨平滑重启如何影响PHP服务,以及如何进行有效的PHP文件测试。 平滑重启主要是指在不中断服务的情况下,更新或重启运行中...

    Python-一个简单小巧可定制化轻量级的基于内存的Python缓存组件

    10. **测试与调试**:缓存组件的测试尤为重要,需要确保在各种场景下都能正确工作,并提供合适的日志或监控工具以便于调试和性能分析。 通过理解和运用这些知识点,开发者可以有效地利用这个Python缓存组件,提升其...

    php服务器测试工具

    在IT行业中,PHP服务器性能测试是一项至关重要的任务,它关系到网站或应用程序的稳定性和效率。PHP是一种广泛使用的服务器端脚本语言,尤其在Web开发领域。本篇将围绕"php服务器测试工具"这一主题,深入探讨如何在...

    Spring集成Redis进行数据缓存

    在压缩包文件“Spring基于注解整合Redis”中,包含了具体的配置文件、Java代码示例,以及可能的测试用例,读者可以通过研究这些文件,进一步理解Spring如何与Redis进行集成以及如何使用注解进行缓存管理。...

    使用APC缓存优化PHP程序

    当一个PHP文件首次被请求时,APC会将其编译为字节码并缓存,后续请求直接从缓存中读取,大大减少了处理时间。 #### 注意事项 - 在生产环境中,监控APC的性能至关重要,包括缓存命中率、内存使用情况等。 - 对于...

    CodeIgniter核心整合为单个文件提高效率

    2. **合并代码**:然后,将这些核心文件的代码合并到一个新的PHP文件中,例如`CodeIgniter_lite.php`。注意,这一步需要谨慎操作,确保保留所有必要的类定义、函数和常量,并保持它们之间的依赖关系正确。 3. **...

    Hibernatehibernate二级缓存.pdf

    在本文档中,我们探讨了Hibernate框架中的二级缓存机制。...然而,需要注意的是,二级缓存可能会引入数据一致性问题,因为它可能会持有旧版本的数据,因此在设计时需要权衡缓存效率和数据新鲜度的需求。

    mybatis 缓存的简单配置

    在文件列表"mybatis-04"中,可能包含了MyBatis的配置文件、Mapper XML文件以及相关的测试代码,这些文件可以帮助我们实践和理解MyBatis的缓存配置。 总的来说,理解和配置MyBatis的缓存机制是提高系统性能的重要...

    chrome浏览器禁止缓存

    当用户访问一个网站时,浏览器会将一些静态资源(如图片、CSS样式表、JavaScript文件等)存储在本地,以便下次访问时能快速加载。这被称为HTTP缓存机制,主要依赖于HTTP响应头中的`Cache-Control`和`Expires`字段来...

    LAMP与LNMP优化与缓存加速

    综上所述,LAMP与LNMP优化与缓存加速的重点在于优化PHP配置,使用操作码缓存提升PHP执行效率,以及结合其他缓存技术如数据库缓存和内容分发网络来改善整体系统性能。正确配置和使用这些工具,可以显著提升网站的响应...

    性能测试交流--个人对性能测试的一些经验分享

    本文将根据"性能测试交流--个人对性能测试的一些经验分享"这一主题,结合描述和提供的文件名称,深入探讨性能测试的相关知识点。 1. **性能测试目标**: - 性能测试的主要目标是确定系统的响应时间、吞吐量和并发...

Global site tag (gtag.js) - Google Analytics