阅读更多

2顶
3踩

编程语言

PHP的异步并发扩展swoole发布了1.7.7版本,此版本主要有:

 

  • 增加对cygwin环境的支持
  • 增加单次定时器的after接口
  • onClose事件调整为在close前触发
  • 增加内置Http服务器
  • 修复目前已知的所有BUG

单次定时器

swoole之前的版本仅支持间隔时间的固定定时器,1.7.7新增了单次定时器接口,可以指定在当前时间之后的n毫秒内执行一段代码。

 

swoole_timer_after(500, function(){
     echo "Hello Swoole\n";
}); //500ms

 在服务器端程序中可以调用swoole_server对象的after方法。

 

$server->on('receive', function($server, $fd, $from_id, $data(){
    $server->after(2000, function(){
        echo "timeout\n";
    });
}));

 

 

内置Http服务器

在此版本中swoole内部集成了一个Http服务器,由底层的C代码解析Http协议。得益于swoole的多线程Reactor+多进程模型,swoole内置Http服务器的性能非常好。通过使用apache bench工具进行压测,性能是node.js的12倍,php-fpm的6倍,Go语言内置的Http服务器的1.42倍。

http = new swoole_http_server("127.0.0.1", 9501);
$http->on('request', function ($request, $response) {
    $response->end("<h1>Hello Swoole. #".rand(1000, 9999)."</h1>");
});
$http->start();

 

压测方法:

 

ab -c 200 -n 200000 -k http://127.0.0.1:9501/

硬件环境:  

Inter Core I5 3.2G * 4核 + 8G内存

QPS对比:

Golang Http  Node.js Http php-fpm swoole-http-server
82037.75 9684.15 17622.74 117029.94

 

压测采用的版本:

  • golang Ubuntu 4.9-20140406-0ubuntu1 [trunk revision 209157](已设置并发线程为CPU核数)
  • node.js v0.10.28
  • swoole-1.7.7
  • php 5.4.25 (已开启OpCache,fpm进程数设置为8)

压测使用的代码:

均取自与官方提供的最简示例。注:性能测试报告仅作参考,测试结果并不代表实际项目数据。

 

2
3
评论 共 5 条 请登录后发表评论
5 楼 hydezhao 2015-02-11 11:22
fpm 进程 你才开8个 这性能能好?
go的版本你也没说  代码放出来瞅瞅
4 楼 shuhen2011 2014-11-20 11:23
yixiandave 写道
是nodejs2倍。。。你特么在逗我吗?nodejs只是一个js运行环境,地位相当于jdk好不好。要比http服务器也应该和apache,nginx做对比吧

Nodejs不是本身也带基本http服务么
3 楼 ahack 2014-11-01 14:34
又见标题党
2 楼 yixiandave 2014-10-31 09:15
是nodejs2倍。。。你特么在逗我吗?nodejs只是一个js运行环境,地位相当于jdk好不好。要比http服务器也应该和apache,nginx做对比吧
1 楼 kuchaguangjie 2014-10-30 11:14
好可笑... 性能是 nodejs 12倍

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

Global site tag (gtag.js) - Google Analytics