PHP 文件缓存的性能测试


Posted in PHP onApril 25, 2010

PHP常用缓存方式
第一种,把需要缓存的数据进行处理,形成PHP可以直接执行的文件。在需要缓存数据的时候,通过include方式引入,并使用。
第二种,把需要的数据通过serialize函数序列化后直接保存到文件。在需要使用缓存数据的时候,通过反序列化读入文件内容并复制给需要的变量,然后使用。

测试结果
通过测试我们发现,第二种也就是serialize缓存数据的方式更加高效。(数据略去,最后提供了文章地址下载,大家可以自行测试)

原因分析
include方式读取缓存的时候,PHP需要执行几个过程
1.读取文件
2.解析所Include的文件
3.执行,给变量赋值

而serialize序列化方式读取缓存的时候:
1.读取数据
2.反序列化数据内容
3.给变量赋值

总结分析
第一种,include缓存的方式
优点:增加数据的保密性,和安全性,缓存内容不会被外界发现。
缺点:速度相对较慢。
用途:保存禁止系统外部得知的数据,比如web系统的设置,甚至MySQL信息等的保存

第二种,serialize序列化缓存的方式
优点:速度较快。
缺点:缓存系统文件路径一旦曝光,缓存内容会泄露。
用途:缓存最新文章,相关文章等不担心外部得知的数据的时候,可以使用这种方式。

PHP 相关文章推荐
提升PHP速度全攻略
Oct 09 PHP
PHP运行环境配置与开发环境的配置(图文教程)
Jun 04 PHP
zf框架的zend_cache缓存使用方法(zend框架)
Mar 14 PHP
PHP fastcgi模式上传大文件(大约有300多K)报错
Sep 28 PHP
详解PHP导入导出CSV文件
Nov 03 PHP
php判断数组中是否存在指定键(key)的方法
Mar 17 PHP
PHP SplObjectStorage使用实例
May 12 PHP
php递归实现无限分类的方法
Jul 28 PHP
php使用ZipArchive函数实现文件的压缩与解压缩
Oct 27 PHP
基础的WordPress插件制作教程
Nov 24 PHP
php使用正则表达式获取字符串中的URL
Dec 29 PHP
laravel框架邮箱认证实现方法详解
Nov 22 PHP
PHP 中文处理技巧
Apr 25 #PHP
PHP 网络开发详解之远程文件包含漏洞
Apr 25 #PHP
php快速url重写更新版[需php 5.30以上]
Apr 25 #PHP
PHP CURL模拟GET及POST函数代码
Apr 25 #PHP
php file_get_contents函数轻松采集html数据
Apr 22 #PHP
国外比较好的几个的Php开源建站平台小结
Apr 22 #PHP
PHP最常用的ini函数分析 针对PHP.ini配置文件
Apr 22 #PHP
You might like
PHP数组排序函数合集 以及它们之间的联系分析
2013/06/27 PHP
ThinkPHP单字母函数(快捷方法)使用总结
2014/07/23 PHP
php简单计算页面加载时间的方法
2015/06/19 PHP
php上传图片并压缩的实现方法
2015/12/22 PHP
解决PhpStorm64不能启动的问题
2020/06/20 PHP
PHP7 windows支持
2021/03/09 PHP
JavaScript DOM 添加事件
2009/02/14 Javascript
再谈ie和firefox下的document.all属性
2009/10/21 Javascript
jquery $.ajax各个事件执行顺序
2010/10/15 Javascript
jQuery弹性滑动导航菜单实现思路及代码
2013/05/02 Javascript
原生js实现模拟滚动条
2015/06/15 Javascript
浅析JS操作DOM的一些常用方法
2016/05/13 Javascript
第一次接触神奇的Bootstrap菜单和导航
2016/08/01 Javascript
微信JS接口大全
2016/08/25 Javascript
Windows环境下npm install 报错: operation not permitted, rename的解决方法
2016/09/26 Javascript
JavaScript  event对象整理及详细介绍
2016/10/10 Javascript
jquery中用函数来设置css样式
2016/12/22 Javascript
JS正则获取HTML元素的方法
2017/03/31 Javascript
Vue数据监听方法watch的使用
2018/03/28 Javascript
在Vuex使用dispatch和commit来调用mutations的区别详解
2018/09/18 Javascript
基于elementUI使用v-model实现经纬度输入的vue组件
2019/05/12 Javascript
Vue快速实现通用表单验证功能
2019/12/05 Javascript
Vuex的热更替如何实现
2020/06/05 Javascript
js实现筛选功能
2020/11/24 Javascript
python Matplotlib画图之调整字体大小的示例
2017/11/20 Python
Python读取txt某几列绘图的方法
2018/10/14 Python
pygame游戏之旅 添加游戏界面按键图形
2018/11/20 Python
Python面向对象程序设计示例小结
2019/01/30 Python
python中的句柄操作的方法示例
2019/06/20 Python
Python如何实现FTP功能
2020/05/28 Python
Python执行时间的几种计算方法
2020/07/31 Python
纯CSS3实现手风琴风格菜单具体步骤
2013/05/06 HTML / CSS
《望洞庭》教学反思
2014/02/16 职场文书
民生工作实施方案
2014/05/31 职场文书
Java框架入门之简单介绍SpringBoot框架
2021/06/18 Java/Android
动漫APP软件排行榜前十名,半次元上榜,第一款由腾讯公司推出
2022/03/18 杂记