yac和memcache性能对比测试

简介:

yac是Laruence开发的一个php进程共享内存的开源项目。详情可以查看。http://www.laruence.com/2013/03/18/2846.html
memcache就不用多说了,如果你不知道拿说明你不是个真正的程序猿。
从应用场景来说,yac相当于本地的memcache,即php程序和memcache搭建在一台服务器上。如果本机的php进程间想共享数据,可以使用yac或者memcache。那么这两个东东那个性能更好呢?今天做了下性能测试。

测试php脚本如下:


<?php
function test_memcache_set(){
    $mem = memcache_connect('127.0.0.1', 11211);
    $value = mt_rand();
    $res = memcache_set($mem, 'var_key', $value, false, 3000);
    var_dump($res);
    if (!$res) {
        header("HTTP/1.0 404 Not Found");
    }
}
 
function test_memcache_get(){
    $mem = memcache_connect('127.0.0.1', 11211);
    $res = memcache_get($mem, 'var_key');
    var_dump($res);
    if (!$res) {
        header("HTTP/1.0 404 Not Found");
    } else {
        echo $res;
    }
}
 
function test_yac_set(){
    $yac = new Yac();
    $value = mt_rand();
    $res = $yac->set('var_key', $value);
    var_dump($res);
    if (!$res) {
        header("HTTP/1.0 404 Not Found");
    }
}
 
function test_yac_get(){
    $yac = new Yac();
    $res = $yac->get('var_key');
    var_dump($res);
    if (!$res) {
        header("HTTP/1.0 404 Not Found");
    } else {
        echo $res;
    }
  
}
 
echo $_GET["m"]();
?>

高并发写的性能
ab -t 10 -c 100 http://10.32.232.129/test.php?m=test_memcache_set
Time per request: 372.394 [ms] (mean)
Time per request: 404.438 [ms] (mean)
Time per request: 401.829 [ms] (mean)

ab -t 10 -c 100 http://10.32.232.129/test.php?m=test_yac_set
Time per request: 196.878 [ms] (mean)
Time per request: 200.621 [ms] (mean)
Time per request: 255.070 [ms] (mean)

高并发读的性能
ab -t 10 -c 100 http://10.32.232.129/test.php?m=test_memcache_get
Time per request: 571.452 [ms] (mean)
Time per request: 571.066 [ms] (mean)
Time per request: 668.744 [ms] (mean)

ab -t 10 -c 100 http://10.32.232.129/test.php?m=test_yac_get
Time per request: 412.464 [ms] (mean)
Time per request: 404.469 [ms] (mean)
Time per request: 380.599 [ms] (mean)

高并发写的时候,同时读的性能
ab -t 30 -c 20 http://10.32.232.129/test.php?m=test_memcache_set
Time per request: 150.284 [ms] (mean)
Time per request: 153.413 [ms] (mean)

ab -t 10 -c 20 http://10.32.232.129/test.php?m=test_memcache_get
Time per request: 125.516 [ms] (mean)
Time per request: 122.119 [ms] (mean)

ab -t 30 -c 20 http://10.32.232.129/test.php?m=test_yac_set
Time per request: 85.494 [ms] (mean)
Time per request: 87.736 [ms] (mean)

ab -t 10 -c 20 http://10.32.232.129/test.php?m=test_yac_get
Complete requests: 1220
Failed requests: 829
(Connect: 0, Length: 829, Exceptions: 0)
Time per request: 164.116 [ms] (mean)

Complete requests: 1300
Failed requests: 809
(Connect: 0, Length: 809, Exceptions: 0)
Time per request: 154.907 [ms] (mean)

测试结论如下:
1.无论单独的并发写,还是单独的并发读,yac都比memcache好。
2.在并发写的同时,并发读。yac已经出现读取数据失败,基本到了不可用的地步。
因此,如果是php程序缓存数据在一台机器上时,并且写的并发不大,建议使用yac。初此之外建议使用memcache。
另外,yac现在还是完善阶段,不建议现在在线上环境使用。


目录
相关文章
|
1月前
|
安全 测试技术
BOSHIDA DC电源模块的安全性能评估与测试方法
BOSHIDA DC电源模块的安全性能评估与测试方法
 BOSHIDA DC电源模块的安全性能评估与测试方法
|
1月前
|
安全
DC电源模块的安全性能评估与测试方法
DC电源模块的安全性能评估与测试方法 DC电源模块的安全性能评估与测试方法应包括以下几个方面: 1. 输入安全性测试:包括输入电压范围、输入电压稳定性、输入电流范围、输入电流保护等方面的测试。测试方法可以是逐步增加输入电压或输入电流,观察模块的工作状态和保护功能。
DC电源模块的安全性能评估与测试方法
|
4月前
|
存储 测试技术 Linux
添加E1000网卡进行测试,只有VMXNET3性能的四分之一
添加E1000网卡进行测试,只有VMXNET3性能的四分之一
64 0
|
4月前
|
存储 测试技术 区块链
阿里云、百度云及移动云对象存储横向性能对比测试
在企业的数字化转型进程中,我们观察到越来越多的公司将其IT基础设施迁移到云端。随着企业业务的持续运营,无论是储存、处理、分享还是删除,都会产生大量的数据,这就要求有一个既可靠又高效的系统来管理和存储这些信息。对象存储产品在这个场景中扮演了至关重要的角色。它们以一种可扩展、安全、持久的方式,有效地满足了对大规模非结构化数据存储的需求。 尽管市场上云计算提供商众多,各自都有自己独特的对象存储产品,面对这样的丰富选择,如何寻找最符合企业需求的产品呢?这正是企业今天寻求解答的问题。 在本篇文章中,我们将深入进行一项横向对比测试,专门对阿里云OSS、百度云BOS和移动云EOS这三大云服务提供商的对象
1358 0
|
7月前
|
消息中间件 Java 测试技术
深聊性能测试,从入门到放弃之:Locust性能自动化(一)初识Locust
深聊性能测试,从入门到放弃之:Locust性能自动化(一)初识Locust
164 1
|
7月前
|
开发框架 测试技术 Serverless
通过性能测试PTS对Serverless应用进行性能压测
本文为您介绍如何利用性能测试PTS对Serverless应用进行性能压测
217 0
|
6月前
|
存储 缓存 Linux
百度搜索:蓝易云【如何在Linux系统服务器中测试存储/磁盘I/O性能?】
这些工具可以帮助你测试磁盘的读取和写入性能,并提供各种性能指标和统计数据。请注意,在运行这些测试时,确保没有重要的数据存储在被测试的磁盘上,并谨慎操作以避免对系统和数据造成不必要的影响。
88 0
|
1月前
|
算法 Java 测试技术
性能工具之代码级性能测试工具ContiPerf
【2月更文挑战第23天】性能工具之代码级性能测试工具ContiPerf
266 1
性能工具之代码级性能测试工具ContiPerf
|
5月前
|
Java 应用服务中间件 测试技术
Tomcat压力测试tps性能下降问题
Tomcat压力测试tps性能下降问题
|
7月前
|
JSON 测试技术 API
深聊性能测试,从入门到放弃之:Locust性能自动化(五)API汇总整理(下)
深聊性能测试,从入门到放弃之:Locust性能自动化(五)API汇总整理(下)
87 0