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现在还是完善阶段,不建议现在在线上环境使用。


目录
相关文章
|
20天前
|
网络协议 安全 测试技术
性能工具之emqtt-bench BenchMark 测试示例
【4月更文挑战第19天】在前面两篇文章中介绍了emqtt-bench工具和MQTT的入门压测,本文示例 emqtt_bench 对 MQTT Broker 做 Beachmark 测试,让大家对 MQTT消息中间 BenchMark 测试有个整体了解,方便平常在压测工作查阅。
114 7
性能工具之emqtt-bench BenchMark 测试示例
|
21天前
|
设计模式 测试技术 持续交付
深入白盒测试:提升软件质量与性能的关键策略
【4月更文挑战第20天】 在软件开发的复杂世界中,确保产品的质量和性能始终是至关重要的任务。白盒测试,作为软件测试领域的重要分支,提供了对程序内部结构和逻辑的深入分析手段。本文将探讨如何通过有效的白盒测试策略来优化软件性能,减少缺陷,并最终提高用户满意度。通过剖析代码检查、单元测试、集成测试等白盒测试技术,我们将了解这些方法如何揭示潜在的问题点,并为改进提供方向。
|
1月前
|
安全 算法 测试技术
深入白盒测试:提升软件质量与性能的关键策略
【4月更文挑战第7天】 在软件开发生命周期中,确保代码的质量和性能至关重要。白盒测试作为一种重要的测试方法,允许测试者通过检查程序内部结构和逻辑来识别缺陷和问题。本文旨在探讨白盒测试的核心原则、技术及其对提升软件产品可靠性的影响。我们将重点分析如何利用白盒测试进行有效的单元测试、集成测试以及系统测试,并讨论现代软件测试工具如何帮助实现自动化测试流程,从而优化开发周期并降低错误率。
|
2月前
|
安全 测试技术
BOSHIDA DC电源模块的安全性能评估与测试方法
BOSHIDA DC电源模块的安全性能评估与测试方法
 BOSHIDA DC电源模块的安全性能评估与测试方法
|
2月前
|
安全
DC电源模块的安全性能评估与测试方法
DC电源模块的安全性能评估与测试方法 DC电源模块的安全性能评估与测试方法应包括以下几个方面: 1. 输入安全性测试:包括输入电压范围、输入电压稳定性、输入电流范围、输入电流保护等方面的测试。测试方法可以是逐步增加输入电压或输入电流,观察模块的工作状态和保护功能。
DC电源模块的安全性能评估与测试方法
|
5月前
|
存储 测试技术 Linux
添加E1000网卡进行测试,只有VMXNET3性能的四分之一
添加E1000网卡进行测试,只有VMXNET3性能的四分之一
|
5月前
|
存储 测试技术 区块链
阿里云、百度云及移动云对象存储横向性能对比测试
在企业的数字化转型进程中,我们观察到越来越多的公司将其IT基础设施迁移到云端。随着企业业务的持续运营,无论是储存、处理、分享还是删除,都会产生大量的数据,这就要求有一个既可靠又高效的系统来管理和存储这些信息。对象存储产品在这个场景中扮演了至关重要的角色。它们以一种可扩展、安全、持久的方式,有效地满足了对大规模非结构化数据存储的需求。 尽管市场上云计算提供商众多,各自都有自己独特的对象存储产品,面对这样的丰富选择,如何寻找最符合企业需求的产品呢?这正是企业今天寻求解答的问题。 在本篇文章中,我们将深入进行一项横向对比测试,专门对阿里云OSS、百度云BOS和移动云EOS这三大云服务提供商的对象
1435 0
|
1天前
|
算法 测试技术 Linux
LabVIEW NI CompactRIO控制器:性能和吞吐量基准测试
LabVIEW NI CompactRIO控制器:性能和吞吐量基准测试
|
1天前
|
Linux 测试技术 Windows
LabVIEW对NI Linux RT应用程序性能进行基准测试
LabVIEW对NI Linux RT应用程序性能进行基准测试
|
11天前
|
分布式计算 Hadoop 测试技术

热门文章

最新文章