php异步多线程swoole使用实例程序

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下居然也有这么好的效率, 留个爪子.以后好用

时间: 2024-09-17 04:46:40

php异步多线程swoole使用实例程序的相关文章

java多线程的优先级实例程序

要点:优先级仅仅增大概率,但是并非一定会优先在多线程中,与线程休眠类似,线程的优先级仍然无法保障线程的执行次序.只不过,优先级高的线程获取CPU资源的概率较大,优先级低的并非没机会执行. 线程的优先级用1-10之间的整数表示,数值越大优先级越高,默认的优先级为5.  代码如下 复制代码 package com.javaer.thread;   public class PTread implements Runnable {     public static void main(String[

求助:关于异步多线程Socket已连接的客户端IP地址和端口

问题描述 如题,网上找了1个异步多线程的C#代码.可以实现客户端连接后客户端发送的数据再发送回去.但是我不知道怎么能把连接到这个服务器的客户端的IP显示出来,断开时候也有个提示,此外,比如说这个客户端连接了4个客户端,我想对第2个客户端主动发送数据怎么弄?求助usingSystem;usingSystem.Net;usingSystem.Net.Sockets;usingSystem.Text;usingSystem.Threading;//Stateobjectforreadingclient

异步 非阻塞-求帮忙设计一个异步非阻塞服务器的程序

问题描述 求帮忙设计一个异步非阻塞服务器的程序 伪代码也可以,尽量使用linux下的函数.我不太明白,select到底实现的是异步还是同步,有的地方说异步,有的地方说同步,还有一种看似权威的说法是实质是同步,是一种伪异步而已.如果select算做异步的话,那么非阻塞又要如何实现呢?求大神!

asp用户注册实例程序

asp教程用户注册实例程序 建立access数据库教程db1.mdb,在其中建立数据表user,字段分别为:u_uid(自动),u_user(用户名:文本型),u_pass(密码:文本型) 四.建立接收register.asp中发送过来的表单数据,并插入到数据表user中的注册成功显示页面: <% '字符串连接数据库的方法 set conn=server.createobject("adodb.connection") conn.open "driver=driver

asp 电子邮箱email验证实例程序

 电子邮箱email验证实例程序 function IsValidEmail(email) dim names, name, i, c 'Check for valid syntax in an email address. IsValidEmail = true names = Split(email, "@") if UBound(names) <> 1 then    IsValidEmail = false    exit function end if for e

PHP CURL 多线程操作代码实例

  这篇文章主要介绍了PHP CURL 多线程操作代码实例,本文直接给出实现代码,需要的朋友可以参考下 使用方法: ? 1 2 3 $urls = array("http://baidu.com", "http://21andy.com", "http://google.com"); $mp = new MultiHttpRequest($urls); $mp->start(); ? 1 2 3 4 5 6 7 8 9 10 11 12 1

JQuery插件ajaxfileupload.js异步上传文件实例

这篇文章主要介绍了JQuery插件ajaxfileupload.js异步上传文件实例,本文直接给出了HTML代码和JS代码以及后台处理代码,需要的朋友可以参考下     在服务器端做文件上传的过程中,如果使用web服务器短端的上传控件去上传文件的话,会导致页面刷新一次,这样对用户的体验就不是很友好了.ajaxfileupload.js是一款jQuery的异步上传文件插件,使用简单且容易上手. 前置条件:ajaxfileupload.js文件,百度下载一个就行. JS引用:  代码如下: <scr

《Java语言导学(原书第6版)》一1.2 “Hello World!”实例程序

1.2 "Hello World!"实例程序 本节详细介绍编译和运行"Hello World!"实例程序的指令.1.2.1节介绍利用集成开发环境NetBeans IDE开发该程序的过程.NetBeans IDE在Java平台上运行,也就是说可在任何配置了JDK的操作系统上运行NetBeans IDE,包括Microsoft Windows.Solaris.Linux和OS X.建议尽可能使用NetBeans IDE取代命令行.1.2.2节和1.2.3节依次介绍不使用

《Java语言导学(原书第6版)》一一1.2 “Hello World!”实例程序

1.2 "Hello World!"实例程序 本节详细介绍编译和运行"Hello World!"实例程序的指令.1.2.1节介绍利用集成开发环境NetBeans IDE开发该程序的过程.NetBeans IDE在Java平台上运行,也就是说可在任何配置了JDK的操作系统上运行NetBeans IDE,包括Microsoft Windows.Solaris.Linux和OS X.建议尽可能使用NetBeans IDE取代命令行.1.2.2节和1.2.3节依次介绍不使用