http://developer.51cto.com/art/200912/166975.htm

PHP文件缓存的速度一直是PHP程序员们关心的问题,他们一直在探讨着如何才能提高PHP文件缓存的效率来满足自己的开发需求

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

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

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

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

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

下面是用来测试的PHP文件缓存的代码:

<?php

$st = microtime(1);
for ($i=0;$i<1000;$i++){
$file = var_export($_SERVER,1);
file_put_contents("data/in.php",$file);
}
echo "include写:".(microtime(1)-$st)." "; $st = microtime(1);
for ($i=0;$i<1000;$i++){
$file = file_put_contents("data/se.php" ,serialize($_SERVER));
}
echo "serialize写:".(microtime(1)-$st)." "; $st = microtime(1);
for ($i=0;$i<1000;$i++){
$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));
}
echo "json写:".(microtime(1)-$st)." "; $st = microtime(1);
for ($i=0;$i<1000;$i++){
$file = file_get_contents("data/js.php");
$file = json_decode($file);
}
echo "json读:".(microtime(1)-$st)." "; ?>

  

PHP文件缓存包含三种格式的更多相关文章

  1. MySQL二进制日志文件Binlog的三种格式以及对应的主从复制中三种技术

    二进制日志文件Binlog的格式主要有三种: 1.Statement:基于SQL语句级别的Binlog,每条修改数据的SQL都会保存到Binlog里面. 2.ROW:基于行级别,每一行数据的变化都会记 ...

  2. iOS开发——程序员必备&iOS安装包的三种格式 deb、ipa 和 pxl的解释和说明

    iOS安装包的三种格式 deb.ipa 和 pxl的解释和说明 目前 iOS 平台上常见的安装包有三种,deb.ipa 和 pxl.转自链接:http://fanlb.blogbus.com/logs ...

  3. Mysql Binlog三种格式介绍及分析【转】

    一.Mysql Binlog格式介绍       Mysql binlog日志有三种格式,分别为Statement,MiXED,以及ROW! 1.Statement:每一条会修改数据的sql都会记录在 ...

  4. 【转】Notepad++中Windows,Unix,Mac三种格式之间的转换

    原文网址:http://www.crifan.com/files/doc/docbook/rec_soft_npp/release/htmls/npp_func_windows_unix_mac.ht ...

  5. ExportAsFixedFormat Visio文件另存为其他几种格式的处理

    Visio文件另存为其他几种格式的处理,以及另存为Web文件等相关操作. 1.Visio导出为PDF格式 在一般情况下,PDF格式是较为常用的内容格式,因此Visio文档(Vsd格式)导出为PDF也是 ...

  6. SIM卡中UCS2编码的三种格式(80,81,82)分析

    网上看到一篇比较好的说ucs2编码的文章,保存一下,原文地址: http://hi.baidu.com/youren4548/blog/item/fa08bd1bf61005058618bf1d.ht ...

  7. Notepad++中Windows,Unix,Mac三种格式

    Notepad++中Windows,Unix,Mac三种格式之间的转换 http://www.crifan.com/files/doc/docbook/rec_soft_npp/release/htm ...

  8. Django文件上传三种方式以及简单预览功能

    主要内容: 一.文件长传的三种方式 二.简单预览功能实现 一.form表单上传 1.页面代码 <!DOCTYPE html> <html lang="en"> ...

  9. linux清空文件内容的三种方法

    linux系统中清空文件内容的三种方法 1.使用vi/vim命令打开文件后,输入"%d"清空,后保存即可.但当文件内容较大时,处理较慢,命令如下:vim file_name:%d: ...

随机推荐

  1. Codeforces Round #493 (Div. 2)

    C - Convert to Ones 给你一个01串 x是反转任意子串的代价 y是将子串全部取相反的代价 问全部变成1的最小代价 两种可能 一种把1全部放到一边 然后把剩下的0变成1  要么把所有的 ...

  2. 如何在以太坊上搭建一个Dapp?

    原创: 前哨小兵甲 区块链前哨 昨天 策划|Tina作者|Mahesh Murthy俗话说,实践出真知!对于开发人员来说,最好的学习办法就是亲自动手做一个小项目.所以,接下来我们将会以一个投票程序为例 ...

  3. JavaScript深入系列(一)--原型和原型链详解

    构造函数创建对象 首先我们先使用构造函数创建一个对象: function Person(){} var person = new Person(); person.name = 'tom'; cons ...

  4. C++ 容器操作

    typedef struct point { int x; int y; }Point; 在声明变量的时候就可以:Point p1; 如果没有typedef, 如: struct point { in ...

  5. vue-cli+webpack在生成的项目中使用bootstrap的方法

    在一个html页面中加入bootstrap是很方便,就是一般的将css和js文件通过Link和Script标签就行.那么在一个用vue-vli生成的前端项目中如何加入?因为框架不一样了,略微要适应一下 ...

  6. chrome截图全网页

    1.F12 2.ctrl+shift+p 3.输入:capture 4.选择Capture full size screenshot

  7. Data Visualization – Banking Case Study Example (Part 1-6)

    python信用评分卡(附代码,博主录制) https://study.163.com/course/introduction.htm?courseId=1005214003&utm_camp ...

  8. 简单的jvm优化的尝试

    一.eclipse 启动优化 在日常的开发中发现eclipse 启动的时候非常慢,并且在实际的开发中也非常卡,所以尝试着优化一下.现在eclipse 是运行在jdk1.7上. 首先我们可以看到ecli ...

  9. CentOS7 上以 RPM 包方式安装 Oracle 18c 单实例

    安装阿里云 YUM 源 https://opsx.alibaba.com/mirror?lang=zh-CN 一.安装Oracle数据库 1.安装 Oracle 预安装 RPM yum -y loca ...

  10. zookeeper安装(单机版)

    1:查看当前服务器IP: # ifconfig 情况1:直接可以看到自己的IP:192.168.164.130 情况2:看不到自己的IP(但是能看到ifcfg-开头的东西,如:ifcfg-eno167 ...