1.vps环境安装:
vps配置同参考博文。
php版本5.2.17
php拓展apc版本3.1.9
memcached服务器版本1.4.5
php拓展memcached版本:1.0.2
2.简陋的php脚本代码:
<?php
/*
*
* linux vps本机APC与Memcached读取写入时间比较
* $Id: apc_mc.php v0.0.1 2011-07-02 23:01:32 caicai $
*/
//创建Memcached链接
$mc = new Memcached;
$mc->addServer('127.0.0.1', 11211);
//1000次Memcached写入时间计算
$t1 = microtime(TRUE);
for($i = 0; $i < 1000; $i++) {
$mc->set('caiblog_'.$i, 'caiblog_'.$i, 60);
}
$t2 = microtime(TRUE) - $t1;
print '1000次Memcached写入时间='.$t2.'<br /><hr /><br />';
//1000次APC写入时间计算
$t3 = microtime(TRUE);
for($i = 0; $i < 1000; $i++) {
apc_store('caiblog_'.$i, 'caiblog_'.$i, 60);
}
$t4 = microtime(TRUE) - $t3;
print '1000次APC写入时间='.$t4.'<br /><hr /><br />';
print 'APC比Memcached快'.($t2 / $t4).'倍。<br /><hr /><br />';
//1000次Memcached读取时间计算
$t1 = microtime(TRUE);
for($i = 0; $i < 1000; $i++) {
$getmc .= $mc->get('caiblog_'.$i);
}
$t2 = microtime(TRUE) - $t1;
print '1000次Memcached读取时间='.$t2.'<br /><hr /><br />';
//1000次APC读取时间计算
$t3 = microtime(TRUE);
for($i = 0; $i < 1000; $i++) {
$getapc .= apc_fetch('caiblog_'.$i);
}
$t4 = microtime(TRUE) - $t3;
print '1000次APC读取时间='.$t4.'<br /><hr /><br />';
print 'APC比Memcached快'.($t2 / $t4).'倍。<br /><hr /><br />';
?>
3.执行结果:
1000次Memcached写入时间=0.0459158420563
——————————————————
1000次APC写入时间=0.00120401382446
——————————————————
APC比Memcached快38.1356435644倍。
——————————————————
1000次Memcached读取时间=0.0366959571838
——————————————————
1000次APC读取时间=0.000883102416992
——————————————————
APC比Memcached快41.5534557235倍。
——————————————————
差距很显著。
4.结果分析:
(1).只能代表小数据的读写效率(只写入和读取了很小的一个字符串),不能代表大数据的读写效率(比如1MB的数据)。
(2).Memcached需要网络连接,而APC则不需要。本身机制上有不同。APC理论上效率就要高于Memcached。
(3).Memcached有APC无法取代的地位,比如分布式缓存只能使用Memcached,无法使用apc,故而,像facebook那样的大站,只会将APC作为系统级缓存,而用户级缓存,仍然交给了Memcached。
(4).对于小型vps来说,APC无疑是一个非常好的缓存机制。既可以系统级页面缓存,又可以用于用户级缓存。vps内存有限,又是本机,几乎不存在分布式架构的必要。故而,很强烈的给各位小站站长们推荐APC。
此文章由 http://www.ositren.com 收集整理 ,地址为:
http://www.ositren.com/htmls/67212.html