TP,Lumen,Laravel 的一些性能对比
昨天来提问lumen和laravel的一些替换代价的,然后今天就被老大强制要求用tp改写了3个并发量高的接口,用laravel写代码已经快半年了,这么一来确实有点郁闷,所以干脆lumen和tp全部重写了一下,看看3个框架到底是那个性能最优,一些测试结果如下,首先介绍一下代码,1.数据库少量操作(测试的用例都是缓存好的数据)2.主要是redis的存取操作 3.无session,然后3个框架都是无任何优化处理的
1.用户信息接口
tp,时间在18到23不等,取20
lumen 24-29不等,取26,
laravel 57到65,波动较大,取60
2.库存列表接口
19-23左右 取21
26-32不等 取29
58-67不等,取63
结论 tp执行速度最优,lumen次之,laravel则显得有点慢了,几乎是tp执行时间的3倍了,自己之前也没写过任何高并发的项目,没想到用了这么长时间的框架,还是有很大的优势的,不过代价就是,很代码写的很low,很多的都是调原生的类,估计是专注于精简项目了(composer了最新的tp6代码居然只有2.几m,而lumen也要20几m,laravel则接近了60m),lumen感觉配置花了点功夫,代码几乎是可以无缝迁移的,就是不知道还有没有办法继续优化?比如路由缓存和配置缓存之类的,命令都缺失了,没法优化,如果能和tp打个平手也可以啊
总之,代码的优雅性和执行速度应该是永恒矛盾的话题吧
不能满足的时候,已经是换编译型语言(Java, C++)的时候了
推荐hyperf, lar用户不需要太多学习成本可以用了
只写接口 用lum比lar好多了
200ms以下都没有任何问题的, 有可能你其他js文件或者css文件加载的时间都比这个长,性能对比你需要看压力测试的, 使用ab 或者 wrk 都可以。 单纯浏览器的话,没意义的。
TP有一点,版本升级比较麻烦,好几次都不兼容
TP6.0 好像是重写了很多东西;快一点,可能是因为 ,项目不再是模块划分
@iwzh 对,跟新项目都不容易;
你忘记swoole了吗? 配上swoole加速,中小型项目里各大框架之间的速度差异可以忽略不计,逻辑代码、带宽、数据库等因素影响比较大
执行效率可以swoole http加速后再试试!
TP所有模块都是自己实现的。lar,lumen很多依赖的第三方的库,而第三方库可能会还会在依赖其他库,所以lumen lar会体积较大。 所以TP应该叫轮子全部自己造 lumen lar是轮子的组合工厂
你直接用Chrome测试也是很牛逼。