【导读】:169网目录大全(https://021dir.com)在线提供,行业资讯「PHP程序员 到最后为什么要 学习swoole」,供行业资讯爱好者免费阅读。
本文地址:https://021dir.com/news/1342.html
本文地址:https://021dir.com/news/1342.html
swoole是PHP的异步、并行、高性能网络通信引擎,使用纯C语言编写,提供了PHP语言的异步多线程服务器,异步TCP/UDP网络客户端,异步MySQL,异步Redis,数据库连接池,AsyncTask,消息队列,毫秒定时器,异步文件读写,异步DNS查询。Swoole内置了Http/WebSocket服务器端/客户端、Http2.0服务器端。
常驻内存,避免重复加载带来的性能损耗,提升海量性能
协程异步,提高对 I/O 密集型场景并发处理能力(如:微信开发、支付、登录等)
方便地开发 Http、WebSocket、TCP、UDP 等应用,可以与硬件通信
PHP 高性能微服务架构成为现实
目前传统 PHP框架,在处理每个请求之前,都要做一遍加载框架文件、配置的操作。这可能已经成为性能问题的一大原因,而使用 Swoole 则没有这个问题,一次加载多次使用。
如下图所示,这是同一个线程处理并发请求的场景,比如你某个接口中需要调用其它 api 接口或读写大文件,传统同步阻塞和协程异步的优势就体现了出来。
<?php use Swoole\Coroutine as co; // 协程 $time = microtime(true); // 创建10个协程 for($i = 0; $i < 10; ++$i) { // 创建协程 go(function() use($i){ co::sleep(1.0); // 模拟请求接口、读写文件等I/O echo $i, PHP_EOL; }); } swoole_event_wait(); echo 'co time:', microtime(true) - $time, ' s', PHP_EOL; // 同步 $time = microtime(true); // 创建10个协程 for($i = 0; $i < 10; ++$i) { sleep(1); // 模拟请求接口、读写文件等I/O echo $i, PHP_EOL; } echo 'sync time:', microtime(true) - $time, ' s', PHP_EOL; |
运行结果:
co time:1.0087130069733 s sync time:10.010055065155 s |
其实也没想象中的难,看代码:
$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(); |
大概就下面这些
了解Linux操作系统进程和线程的概念
版权声明:
1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。
2、本站仅提供信息发布平台,不承担相关法律责任。
3、若侵犯您的版权或隐私,请联系本站管理员删除。
上一篇:热门关键词的含义以及如何优化热门关键词
下一篇:毛豆新车金融客服电话