网络IO 十三
基于swoole http与websocket打造 非传统类型的框架 |
|
Swoole -> 常驻内存 -> 变量回收 -> 变量会变得很大
Php-fpm -> web |
区别在于 1.swoole http server 是常驻内存 2.httpserver 继承于 server 这个类的组成有:http协议,请求,响应 |
Server内存管理机制 |
|
Server中对象的4层生命周期 |
对象: 变量,对象,资源,require/include的文件
1.程序全局期 针对整个swoole 在server->start之前就创建好的对象,这个变量在程序启动后一直就会存在,直到整个程序结束运行才会销毁。 但有一些服务器的程序可能会连续运行数月或数年,会被worker进程间共享。 程序全局require/include的文件的修改,不会因为服务的重启而失效,需要shutdow才会起效。
2.进程全局期 针对worker进程 Server启动后会创建多个进程 进程全局期只存在于进程的独享空间,每个进程都是独立存在的 require/include的文件的修改,服务的重启就会起效
3.会话期 针对于用户的连接 会话期是在onconnect后创建,或者是在onreceive时创建,onclose时销毁 加了 global就是会话期
4.请求期 针对于函数的执行、针对于用户的请求 没有global这个就是请求期 |
http.server的请求 |
Http\Request->rawContent 非正常接收的数据(json,xml)
Swoole => laravel,tp => swoole回收了系统的超全局变量 |
加速的原因 |
传统框架,读取PHP超全局变量 $_SERVER , $_GET,$_POST |
http.server的响应 |
Http\Response->zip Http\Response->write 分段向浏览器发送相应的内容 |
swoole加速框架 |
|