linux vps本机APC与Memcached读写效率比较

字体大小: 中小 标准 ->行高大小: 标准
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