同台服务器使用缓存APC效率高于Memcached的演示代码


Posted in PHP onFebruary 16, 2010
<?php 
$memcachehost = 'localhost'; 
$memcacheport = '11211'; 
function microtime_float(){ 
list($usec, $sec) = explode(" ", microtime()); 
return ((float)$usec + (float)$sec); 
} 
function runtime($t1){ 
return number_format((microtime_float() - $t1)*1000, 4).'ms'; 
} 
$starttime = microtime_float(); 
$cache_time = '30'; 
echo "init=====".runtime($starttime).'<br>'; $sql = "SELECT * FROM hx WHERE id = 10006"; 
$mem_sql_key = md5($sql); 
$t1 = microtime_float(); 
echo "APC_read====="; 
$arrs = apc_fetch($mem_sql_key); 
echo runtime($t1).'<br>'; 
$t1 = microtime_float(); 
apc_store($mem_sql_key.'_test', $arrs, $cache_time); 
echo "APC_write====="; 
echo runtime($t1).'<br>'; 
$t1 = microtime_float(); 
$mem = new Memcache; 
$mem->connect($memcachehost, $memcacheport); 
echo "MEM_connet=====".runtime($t1).'<br>'; 
$t1 = microtime_float(); 
$arrs = $mem->get($mem_sql_key); 
echo "MEM_read====="; 
echo runtime($t1).'<br>'; 
$t1 = microtime_float(); 
$mem->set($mem_sql_key.'_test',$arrs,0,$cache_time); 
echo "MEM_write====="; 
echo runtime($t1).'<br>'; 
?>

预先把这句SQL的结果在apc和memcached中都缓存了,然后测试读写速度。
在本机windows上结果:
init=====0.0341ms
APC_read=====0.0439ms
APC_write=====0.0920ms
MEM_connet=====11.0571ms
MEM_read=====0.2630ms
MEM_write=====0.2270ms

在服务器上linux上结果:
init=====0.0131ms
APC_read=====0.0520ms
APC_write=====0.0489ms
MEM_connet=====0.0501ms
MEM_read=====0.1030ms
MEM_write=====0.0801ms

当然反复刷新会有不同的值,这里只是取了一个较平均的值。
win下的不具备什么参考性,主要看linux上的结果。
不算connent时间,大概读写的速度apc都比memcached快上一倍左右。算上memcache_connect的时间,也就是快二倍。
APC即可以实现php文件的opcode缓存,也可以实现user cache,实在是个好东西。

所以,如果当网站规模还小的时候,所有功能可以在一台服务器上完成时,那么缓存的方案首选应该就是APC,不用考虑memcached。但如果考虑到网站规模会不断扩大,这点时间的性能差异其实可以忽略不计的,就应该部署memcached了。
另外,跨服务器使用memcached,最好要使用内网。不然的话,受路由的影响,memcached经常会连接超时(超过100ms),而且会凭空多出来两倍的宽带流量。

PHP 相关文章推荐
PHP新手上路(六)
Oct 09 PHP
据说是雅虎的一份PHP面试题附答案
Jan 07 PHP
php判断终端是手机还是电脑访问网站的思路及代码
Apr 24 PHP
PHP中$_SERVER的详细参数与说明介绍
Oct 26 PHP
浅析php数据类型转换
Jan 09 PHP
php创建桌面快捷方式实现方法
Dec 31 PHP
Yii2 rbac权限控制之菜单menu实例教程
Apr 28 PHP
微信公众号OAuth2.0网页授权问题浅析
Jan 21 PHP
PHP实现随机数字、字母的验证码功能
Aug 01 PHP
TP5(thinkPHP5)框架基于ajax与后台数据交互操作简单示例
Sep 03 PHP
PHP结合Redis+MySQL实现冷热数据交换应用案例详解
Jul 09 PHP
PHP设计模式(四)原型模式Prototype实例详解【创建型】
May 02 PHP
用PHP ob_start()控制浏览器cache、生成html实现代码
Feb 16 #PHP
PHP IPV6正则表达式验证代码
Feb 16 #PHP
php foreach 使用&amp;(与运算符)引用赋值要注意的问题
Feb 16 #PHP
PHP 截取字符串函数整理(支持gb2312和utf-8)
Feb 16 #PHP
Apache环境下PHP利用HTTP缓存协议原理解析及应用分析
Feb 16 #PHP
一步一步学习PHP(6) 面向对象
Feb 16 #PHP
一步一步学习PHP(5) 类和对象
Feb 16 #PHP
You might like
火车头discuz6.1 完美采集的php接口文件
2009/09/13 PHP
php5 non-thread-safe和thread-safe这两个版本的区别分析
2010/03/13 PHP
初次接触php抽象工厂模式(Elgg)
2010/03/21 PHP
提示Trying to clone an uncloneable object of class Imagic的解决
2011/10/27 PHP
javascript面向对象编程代码
2011/12/19 Javascript
js通过地址栏给action传值(中文乱码全是问号)
2013/05/02 Javascript
JavaScript中判断整数的多种方法总结
2014/11/08 Javascript
javascript实现根据身份证号读取相关信息
2014/12/17 Javascript
在JavaScript中使用对数Math.log()方法的教程
2015/06/15 Javascript
跟我学习javascript的严格模式
2015/11/16 Javascript
javascript常用经典算法实例详解
2015/11/25 Javascript
Bootstrap组件系列之福利篇几款好用的组件(推荐二)
2016/07/12 Javascript
基于Bootstrap的Metronic框架实现条码和二维码的生成及打印处理操作
2016/08/29 Javascript
利用js+css+html实现固定table的列头不动
2016/12/08 Javascript
vue权限路由实现的方法示例总结
2018/07/29 Javascript
详解在vue-cli中使用graphql即vue-apollo的用法
2018/09/08 Javascript
jquery+php后台实现省市区联动功能示例
2019/05/23 jQuery
ES6基础之数组和对象的拓展实例详解
2019/08/22 Javascript
python中字典dict常用操作方法实例总结
2015/04/04 Python
用Python生成器实现微线程编程的教程
2015/04/13 Python
opencv改变imshow窗口大小,窗口位置的方法
2018/04/02 Python
pandas 空的dataframe 插入列名的示例
2018/10/30 Python
Python传递参数的多种方式(小结)
2019/09/18 Python
详解Python time库的使用
2019/10/10 Python
Django {{ MEDIA_URL }}无法显示图片的解决方式
2020/04/07 Python
python简单实现最大似然估计&amp;scipy库的使用详解
2020/04/15 Python
keras得到每层的系数方式
2020/06/15 Python
Python ellipsis 的用法详解
2020/11/20 Python
Python爬虫进阶之爬取某视频并下载的实现
2020/12/08 Python
django中ImageField的使用详解
2020/12/21 Python
LivingSocial爱尔兰:爱尔兰本地优惠
2018/08/10 全球购物
森林防火工作方案
2014/02/14 职场文书
村抢险救灾方案
2014/05/09 职场文书
岗位聘任报告
2015/03/02 职场文书
《云雀的心愿》教学反思
2016/02/23 职场文书
CSS 实现多彩、智能的阴影效果
2021/05/12 HTML / CSS