1.如题 2.假如把其他mvc框架(laravel、yii2等)用webman的写法整合到workerman里边,是不是有一些东西无法常驻内存。并且,因为组件多会导致性能不如webman好?
1、webman性能高主要是由于常驻内存。 在webman里很多初始化在进程启动的时候就完成了,然后便常驻内存复用。 传统框架做不到这点,比如传统框架一个请求到来要从磁盘加载N多php文件并解析(开启opcache虽然可以节省磁盘开销,但仍然有读共享内存开销、实例化各种类的开销),然后实例化各种类,包括框架相关的类、控制器、路由、中间键、连数据库redis、执行业务代码,断开数据库redis,销毁前面初始化的所有东西。
而webman一个请求到来直接就执行业务代码,没有其它消耗。因为其它消耗在进程启动的时候就完成了。所以webman要比传统框架快几倍到几十倍。
2、用workerman改写都可以做到常驻内存。组件都是按需加载的,比如有1万个组件,但是请求只用了其中一个,和有2个组件,请求中只用了一个,性能没有区别。
1、webman性能高主要是由于常驻内存。
在webman里很多初始化在进程启动的时候就完成了,然后便常驻内存复用。
传统框架做不到这点,比如传统框架一个请求到来要从磁盘加载N多php文件并解析(开启opcache虽然可以节省磁盘开销,但仍然有读共享内存开销、实例化各种类的开销),然后实例化各种类,包括框架相关的类、控制器、路由、中间键、连数据库redis、执行业务代码,断开数据库redis,销毁前面初始化的所有东西。
而webman一个请求到来直接就执行业务代码,没有其它消耗。因为其它消耗在进程启动的时候就完成了。所以webman要比传统框架快几倍到几十倍。
2、用workerman改写都可以做到常驻内存。组件都是按需加载的,比如有1万个组件,但是请求只用了其中一个,和有2个组件,请求中只用了一个,性能没有区别。