php本身很快
php往往比python或者ruby快个几倍,php数组是c写的,还经过了十几年的优化,php常用函数也都是c写的,操作数组或者调用这些标准库函数的时候,除了调用开销外,执行函数本身是就是c的速度。 (推荐学习:php视频教程)
php框架很薄
很多人完全不用框架,从fpm进来直奔主题,没有抽象封装带来的多余动作,比如说
url路由在nginx中已经简单处理好了,也不用捕获请求路径中的变量。
不需要session的时候,它不会自动给你获取session,session是很重的。
不用做身份认证的时候,也不需要框架里常见的auth那部分处理流程。
没有层层的beforexxx和afterxxx,跳过了那一大堆hook方法。
以上框架常用功能,每一样都有厚重的框架自身的初始化操作,一旦用了,就会严重降低性能。现在比较主流的php框架,如laravel和codeigniter就是典型代表,性能大致是这样的,一个简单的hello world,每个cpu核心能负担的qps
下一代php运行方式
还有不到10%的php用户,在特别需要性能又必须用php的时候,选择了swoole,它不同于fpm,swoole本质是cli运行,比较耗时的协议解析和常规处理,都是c写的扩展里做好了。
swoole在继承了php7的高性能的同时,还把fpm模式下每个请求框架要重新初始化的缺陷彻底解决掉了。然后选择swoole的同时,仍然可以保持只用薄框架甚至不用框架,那速度是不是要起飞了?
在swoole这种运行模式下,你可以把php看作是一个c写的应用带的配置文件,有什么理由比那些竞争对手慢呢?应该比那些对手们更快才对。如果给laravel适配上swoole,那绝对是另一番景象。
从开发效率上看,我个人身上,php大概比java快10%左右吧,写的时候是php快,但是改起来却稍稍费事一些,要理清嵌套好几层的数组的结构,不如java里直接跳转到明确的类型定义来的方便。加上编译器的存在,又消灭了一些低级bug。java的标准库设施,文档和参考资料要远多于swoole,这方面又缩小了开发效率上的差距。
以上就是php开发快吗的详细内容。