同台服务器使用缓存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 相关文章推荐
UCenter Home二次开发指南
May 28 PHP
php htmlspecialchars加强版
Feb 16 PHP
php file_put_contents()功能函数(集成了fopen、fwrite、fclose)
May 24 PHP
php array_filter除去数组中的空字符元素
Jun 21 PHP
PHP fgetcsv 定义和用法(附windows与linux下兼容问题)
May 29 PHP
PHP中使用cURL实现Get和Post请求的方法
Mar 13 PHP
php实现斐波那契数列的简单写法
Jul 19 PHP
四个常见html网页乱码问题及解决办法
Sep 08 PHP
PHP strip_tags() 去字符串中的 HTML、XML 以及 PHP 标签的函数
May 22 PHP
php获取数据库结果集方法(推荐)
Jun 01 PHP
PHP编程获取图片的主色调的方法【基于Imagick扩展】
Aug 02 PHP
php实现的支付宝网页支付功能示例【基于TP5框架】
Sep 16 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
第四节 构造函数和析构函数 [4]
2006/10/09 PHP
解析PHP中empty is_null和isset的测试
2013/06/29 PHP
6个超实用的PHP代码片段
2015/08/10 PHP
示例详解Laravel重置密码代码重构
2016/08/10 PHP
php中__toString()方法用法示例
2016/12/07 PHP
Laravel Intervention/image图片处理扩展包的安装、使用与可能遇到的坑详解
2017/11/14 PHP
PHP设计模式之模板方法模式定义与用法详解
2018/04/02 PHP
PHP7 整型处理机制修改
2021/03/09 PHP
jquery事件与函数的使用介绍
2013/09/29 Javascript
jquery使用append(content)方法注意事项分享
2014/01/06 Javascript
jQuery:delegate中select()不起作用的解决方法(实例讲解)
2014/01/26 Javascript
js 动态修改css文件的方法
2014/08/05 Javascript
鼠标悬浮显示二级菜单效果的jquery实现
2014/10/29 Javascript
使用Chrome浏览器调试AngularJS应用的方法
2015/06/18 Javascript
移动端刮刮乐的实现方式(js+HTML5)
2017/03/23 Javascript
windows下vue-cli及webpack搭建安装环境
2017/04/25 Javascript
nodejs批量下载图片的实现方法
2017/05/19 NodeJs
使用Angular CLI生成 Angular 5项目教程详解
2018/03/18 Javascript
详解使用VueJS开发项目中的兼容问题
2018/08/02 Javascript
基于vue.js实现分页查询功能
2018/12/29 Javascript
NodeJs 实现简单WebSocket即时通讯的示例代码
2019/08/05 NodeJs
Python实现股市信息下载的方法
2015/06/15 Python
Flask入门之上传文件到服务器的方法示例
2018/07/18 Python
在pandas多重索引multiIndex中选定指定索引的行方法
2018/11/16 Python
Python3.7 基于 pycryptodome 的AES加密解密、RSA加密解密、加签验签
2019/12/04 Python
Python控制台输出时刷新当前行内容而不是输出新行的实现
2020/02/21 Python
win7上tensorflow2.2.0安装成功 引用DLL load failed时找不到指定模块 tensorflow has no attribute xxx 解决方法
2020/05/20 Python
Python面向对象实现方法总结
2020/08/12 Python
python中PyQuery库用法分享
2021/01/15 Python
意大利奢侈品牌在线精品店:Jole.it
2020/11/23 全球购物
德国的各种媒体在线商店:Thalia.de(书籍、电子书、玩具等)
2020/10/08 全球购物
儿子婚宴答谢词
2014/01/09 职场文书
大学新闻系应届生求职信
2014/06/02 职场文书
办公室领导干部作风整顿个人整改措施
2014/09/17 职场文书
2014年实习生工作总结
2014/11/27 职场文书
堂吉诃德读书笔记
2015/06/30 职场文书