视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
workerman性能怎么样
2020-11-03 18:24:21 责编:小采
文档


为什么workerman拥有卓越的性能

简单的进程通讯模型使得workerman相比其它复杂的进程模型的软件更高效。 (推荐学习: workerman教程)

避免读取磁盘和反复编译

workerman运行过程中,单个进程生命周期内只要PHP文件被载入编译过一次,便会常驻内存,不会再去从磁盘读取或者再去编译。

workerman省去了重复的请求初始化、创建执行环境、词法解析、语法解析、编译生成opcode以及请求关闭等诸多耗时的步骤。

实际上workerman运行起来后便几乎没有磁盘IO及PHP文件编译开销,剩下的只是简单的计算过程,这使得workerman运行飞快。

数据或者资源可以全局共享

workerman中多个请求是可以共享数据或者资源的,当前请求产生的全局变量或者类的静态成员在下一次请求中仍然有效。 这对于减少开销,提高运行效率非常有用。

例如业务只要初始化一次数据库连接,那么全局都可以共享这个连接,这实现了真正意义上的数据库长连接。 从而不必每次用户请求都去创建新的连接,避免了连接时三次握手、连接后权限验证以及断开连接时四次挥手等耗时的交互过程。

不仅数据库,像redis、 memcache等同样有效。少了这些开销和网络交互,使得workerman运行更快。

没有多余的网络开销

传统PHP应用程序需要借助apache、nginx等容器才能对外提供网络服务,这就导致多了一层apache、nginx等容器到PHP进程的数据传输开销。

并且由于运行了apache或者nginx容器,这将进一步消耗服务器的资源。 workerman便没有这部分开销,这是由于workerman自身便是一个服务器容器具有PHP进程管理以及网络通讯功能, 完全不依赖于apache、nginx、php-fpm等这些容器便可以运行,所以性能更高。

下载本文
显示全文
专题