php异步多线程swoole用法实例

  本文实例讲述了php异步多线程swoole用法。分享给大家供大家参考。具体分析如下:

  swoole重新定义PHP语言的高性能网络通信框架,提供了PHP语言的异步多线程服务,下面的实例就可以证实这一功能。

  一般来说,Swoole提供了PHP语言的异步多线程服务器,异步TCP/UDP网络客户端,异步MySQL,数据库连接池,AsyncTask,消息队列,毫秒定时器,异步文件读写,异步DNS查询.

  swoole以前听过, 拿来做游戏服务器简直是神器…今天稍微的感受了一下,  在 ubuntu 下搭建了环境, 测试了一下

  具体测试代码如下:

  

复制代码 代码如下:
<?php

  class page extends Controller

  {

  function index()

  {

  $data = createModel('UserInfo')->get(12)->get();

  $this->swoole->tpl->assign('data',$data);

  $html = $this->swoole->tpl->fetch('test.html');

  $time = $this->showTime();

  return $html.$time;

  }

  }

  shell

  ab -c 100 -n 1000 -k http://127.0.0.1/index/

  Requests per second

  Time per request (mean)

  Time per request (mean, across all concurrent requests)

  运行方式:

  Swoole EventTCP Swoole SelectTCP Swoole BlockTCP Apache/Prefork

  单进程

  571.70 [#/sec] 174.916 [ms] 1.749 [ms] 659.01 [#/sec]

  151.743 [ms]

  1.517 [ms]

  561.24 [#/sec]

  178.178 [ms]

  1.782

  80.57

  1241.083 [ms]

  12.411 [ms]

  4进程

  1153.63 [#/sec]

  86.683 [ms]

  0.867 [ms]

  1010.08 [#/sec]

  99.002 [ms]

  0.990 [ms]

  1094.58 [#/sec]

  91.359 [ms]

  0.914 [ms]

  apache下居然也有这么好的效率, 留个爪子.以后好用。

  希望本文所述对大家的PHP程序设计有所帮助。