设为首页收藏本站

LUPA开源社区

 找回密码
 注册
文章 帖子 博客
LUPA开源社区 首页 业界资讯 软件追踪 查看内容

swoole-1.7.7发布,Http服务器性能大幅提升

2014-10-29 16:59| 发布者: joejoe0332| 查看: 819| 评论: 0|原作者: oschina|来自: oschina

摘要:   swoole-1.7.7 发布,内置Http服务器性能是Node.js的12倍  PHP的异步并发扩展swoole发布了 1.7.7 版本,此版本主要有:增加对cygwin环境的支持增加单次定时器的after接口onClose事件调整为在close前触发增加内 ...

  swoole-1.7.7 发布,内置Http服务器性能是Node.js的12倍


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

  • 增加对cygwin环境的支持

  • 增加单次定时器的after接口

  • onClose事件调整为在close前触发

  • 增加内置Http服务器

  • 修复目前已知的所有BUG


单次定时器

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

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


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

1
2
3
4
5
$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倍。


压测方法:

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

硬件环境:

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

QPS对比:

Golang Http Node.js Httpphp-fpmswoole-http-server
82037.759684.1517622.74117029.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)


压测使用的代码:

均取自与官方提供的最简示例。

注:性能测试报告仅作参考,测试结果并不代表实际项目数据。

Swoole是一个PHP的C扩展,可用来开发PHP的高性能高并发TCP/UDP Server。Swoole的网络IO部分基于epoll/kqueue事件循环,是全异步非阻塞的。 业务逻辑部分使用多进程同步阻塞方式来运行。这样既保证了Server能够应对高并发和大量TCP连接。又保证业务代码仍然可以简单的编写。

Swoole与Node.js相比更强大,支持同步/异步、多进程并行,Swoole提供了进程生命周期管理、内存保护机制,开发者无需考虑底层细节,专注于业务逻辑和功能的开发。

Swoole的网络事件处理是多线程的,可以充分利用多核。而Node.js是单进程单线程的。使用官方提供的EchoServer在多核环境下压测。Swoole的处理能力比node.js高出数倍。


酷毙

雷人

鲜花

鸡蛋

漂亮
  • 快毕业了,没工作经验,
    找份工作好难啊?
    赶紧去人才芯片公司磨练吧!!

最新评论

关于LUPA|人才芯片工程|人才招聘|LUPA认证|LUPA教育|LUPA开源社区 ( 浙B2-20090187 浙公网安备 33010602006705号   

返回顶部