[原创]linux vps本机APC与Memcached读写效率比较

2011年7月2日 | 标签: apc, memcached, php, 效率

1.vps环境安装:

参考本博文:vps安装centos系统LNMP环境详细配置

vps配置同参考博文。

php版本5.2.17

php拓展apc版本3.1.9

memcached服务器版本1.4.5

php拓展memcached版本:1.0.2

 

2.简陋的php脚本代码:

<?php

/*
 * 欢迎访问 www.lnmpblog.com
 * 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('lnmpblog_'.$i, 'lnmpblog_'.$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('lnmpblog_'.$i, 'lnmpblog_'.$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('lnmpblog_'.$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('lnmpblog_'.$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。

(5).欢迎大家指出本文不妥之处。稍后有时间,我做一下1MB左右的数据的读写效率比较。欢迎大家拍砖。

 


相关博文

目前还没有任何评论.

WordPress SEO fine-tune by Meta SEO Pack from Poradnik Webmastera