TP,Lumen,Laravel 的一些性能对比

昨天来提问 lumen 和 laravel 的一些替换代价的,然后今天就被老大强制要求用 tp 改写了 3 个并发量高的接口,用 laravel 写代码已经快半年了,这么一来确实有点郁闷,所以干脆 lumen 和 tp 全部重写了一下,看看 3 个框架到底是那个性能最优,一些测试结果如下,首先介绍一下代码,1. 数据库少量操作(测试的用例都是缓存好的数据)2. 主要是 redis 的存取操作 3. 无 session,然后 3 个框架都是无任何优化处理的
1. 用户信息接口

TP,lumen,laravel的一些性能对比
tp, 时间在 18 到 23 不等,取 20

TP,lumen,laravel的一些性能对比
lumen 24-29 不等,取 26,

TP,lumen,laravel的一些性能对比
laravel 57 到 65,波动较大,取 60
2. 库存列表接口

TP,lumen,laravel的一些性能对比
19-23 左右 取 21

TP,lumen,laravel的一些性能对比
26-32 不等 取 29

TP,lumen,laravel的一些性能对比
58-67 不等,取 63

结论 tp 执行速度最优,lumen 次之,laravel 则显得有点慢了,几乎是 tp 执行时间的 3 倍了,自己之前也没写过任何高并发的项目,没想到用了这么长时间的框架,还是有很大的优势的,不过代价就是,很代码写的很 low,很多的都是调原生的类,估计是专注于精简项目了(composer 了最新的 tp6 代码居然只有 2. 几 m, 而 lumen 也要 20 几 m,laravel 则接近了 60m),lumen 感觉配置花了点功夫,代码几乎是可以无缝迁移的,就是不知道还有没有办法继续优化?比如路由缓存和配置缓存之类的,命令都缺失了,没法优化,如果能和 tp 打个平手也可以啊

总之,代码的优雅性和执行速度应该是永恒矛盾的话题吧

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 10

不能满足的时候,已经是换编译型语言(Java, C++)的时候了

5年前 评论
opcache已开
laravel 
real    0m0.019s
user    0m0.003s
sys    0m0.003s

hyperf
real    0m0.008s
user    0m0.001s
sys    0m0.005s

推荐 hyperf, lar 用户不需要太多学习成本可以用了

只写接口 用 lum 比 lar 好多了

5年前 评论
Epona

200ms 以下都没有任何问题的, 有可能你其他 js 文件或者 css 文件加载的时间都比这个长,性能对比你需要看压力测试的, 使用 ab 或者 wrk 都可以。 单纯浏览器的话,没意义的。

5年前 评论

TP 有一点,版本升级比较麻烦,好几次都不兼容

5年前 评论

TP6.0 好像是重写了很多东西;快一点,可能是因为 ,项目不再是模块划分

5年前 评论

@iwzh 对,跟新项目都不容易;

5年前 评论

你忘记 swoole 了吗? 配上 swoole 加速,中小型项目里各大框架之间的速度差异可以忽略不计,逻辑代码、带宽、数据库等因素影响比较大

4年前 评论

执行效率可以 swoole http 加速后再试试!

4年前 评论

TP 所有模块都是自己实现的。lar,lumen 很多依赖的第三方的库,而第三方库可能会还会在依赖其他库,所以 lumen lar 会体积较大。 所以 TP 应该叫轮子全部自己造 lumen lar 是轮子的组合工厂

4年前 评论

你直接用 Chrome 测试也是很牛逼。

4年前 评论