首先展示一下其他主要框架的测试:
https://github.com/kenjis/php-framework-benchmark
框架地址:
https://github.com/chopins/toknot
测试用例是仓库中app/admin应用
我的测试环境:
与上面用 apache web 服务器不同,我用的是 nginx
php 版本: 5.6.0
php 扩展情况:
[PHP Modules]
Core
date
ereg
mysqli
mysqlnd
pcre
PDO
pdo_mysql
Reflection
session
SPL
standard
Zend OPcache
[Zend Modules]
Zend OPcache
php-fpm 配置:
pm.max_children = 8
pm.start_servers = 4
pm.max_spare_servers = 4
pm.min_spare_servers = 2
测试命令:
ab -n 10000 -c 4 http://127.0.0.1/account/signup
业务:
测试结果:
Server Software: nginx/1.10.2
Server Hostname: 127.0.0.1
Server Port: 80
Document Path: /account/signup
Document Length: 36 bytes
Concurrency Level: 4
Time taken for tests: 11.643 seconds
Complete requests: 10000
Failed requests: 0
Total transferred: 2600000 bytes
HTML transferred: 360000 bytes
Requests per second: 858.89 [#/sec] (mean)
Time per request: 4.657 [ms] (mean)
Time per request: 1.164 [ms] (mean, across all concurrent requests)
Transfer rate: 218.08 [Kbytes/sec] received
858.89
RPS 比 CI-3.0 的 753.09
略高,比 fatfree3.5 的 965.16
略低
内存占用:
PHP 7.0 测试情况
opcache 版本:
Concurrency Level: 8
Time taken for tests: 7.578 seconds
Complete requests: 10000
Failed requests: 7
(Connect: 0, Receive: 0, Length: 7, Exceptions: 0)
Total transferred: 102427973 bytes
HTML transferred: 100177973 bytes
Requests per second: 1319.60 [#/sec] (mean)
Time per request: 6.062 [ms] (mean)
Time per request: 0.758 [ms] (mean, across all concurrent requests)
Transfer rate: 13199.60 [Kbytes/sec] received
无 opcache 版本:
Concurrency Level: 100
Time taken for tests: 190.636 seconds
Complete requests: 50000
Failed requests: 41
(Connect: 0, Receive: 0, Length: 41, Exceptions: 0)
Total transferred: 512146699 bytes
HTML transferred: 500896699 bytes
Requests per second: 262.28 [#/sec] (mean)
Time per request: 381.271 [ms] (mean)
Time per request: 3.813 [ms] (mean, across all concurrent requests)
Transfer rate: 2623.55 [Kbytes/sec] received
有无 opcache 相差好大
1
codespots 2017-03-31 11:48:13 +08:00
优雅的框架连垫底都是这么的优雅
|
2
codespots 2017-03-31 11:49:35 +08:00
up 主可以添加个 pure php 做完基准,还有可以添加测试下 Yaf 的性能
|
4
linghutf 2017-03-31 12:26:38 +08:00 via Android
laravel 惨不忍睹
|
5
codespots 2017-03-31 12:35:35 +08:00
@szopen 我的意思是用纯 PHP 的性能做为基准,比较各种框架的性能损失,或者性能达到原生的百分比。当然了,框架的主要目的并不是在性能。
|
6
sobigfish 2017-03-31 12:38:48 +08:00
7.0 的对比呢?
|
7
levn 2017-03-31 12:50:40 +08:00
如果有 xdebug profiler 的记录就更有意思了
|
8
predator 2017-03-31 13:06:24 +08:00
居然没有 thinkphp !老外的视野不够开阔 =。=
|
9
gouchaoer 2017-03-31 13:09:48 +08:00
laravel 那复杂的优雅我欣赏不来
|
11
laoyuan 2017-03-31 13:24:23 +08:00
第一的应该是 Silex
|
12
vjnjc 2017-03-31 13:38:39 +08:00
好久没写 php 了,我以前用的 Codeigniter 怎么都看不到。。。
|
14
tabris17 2017-03-31 13:49:55 +08:00
啥功能都没有,当然快了
|
16
ss098 2017-03-31 14:10:36 +08:00
opcache 对于 Laravel 性能提升是非常大的,之前我在服务器上通过 Laravel 执行一条简单的 SQL 要 200ms ,现在安装以后这个请求只要 20ms 。
|
20
szopen OP @ss098 估计大部份消耗都是在 autoload 上,我用 xdebug 分析了一下,总共 83 次的 autoload 调用消耗了我经 48%的时间
|
21
ysz1121 2017-03-31 15:11:16 +08:00
好低啊
|
22
otakustay 2017-03-31 17:01:22 +08:00
没看懂,楼主的意思是社区的性能测试结论是在 apache 做 web 服务器的情况下得出的,而你是用 nginx 来做测试并试图与社区的结论进行对比?
|
23
iwege 2017-03-31 20:40:34 +08:00
讨论 laravel 垫底意义不大, laravel 算是全功能框架了,要看理论上应该先看 lumen.
|
24
mingyun 2017-03-31 23:04:13 +08:00
laravel 垫底
|
25
cxbig 2017-03-31 23:25:39 +08:00
空框架?有意义么?实际的产品快不快不完全是框架的问题。
|
26
aksoft 2017-04-01 09:18:53 +08:00
追求速度 脚本 请用 lua
|
27
qqjt 2017-04-01 10:05:12 +08:00
关于性能, laravel 框架作者这么说: https://medium.com/@taylorotwell/benchmarking-laravel-symfony-zend-2c01c2b270f8
|
28
qqjt 2017-04-01 10:05:47 +08:00
“ Before beginning, know that all of these frameworks are fast enough to handle any application you are ever likely to build. I hesitated to even write this post because I think PHP ’ s unique obsession with benchmarking on this level is really, really silly. My only goal is to show how to perform a fair comparison between the three.”
|
29
lianxiaoyi 2017-04-01 10:17:40 +08:00
yaf 秒杀全场
|
30
we3613040 2017-04-01 10:22:03 +08:00
我大 ci 就是牛逼
|
31
killerv 2017-04-01 11:19:17 +08:00
框架对比性能的意义不大,就像是对比卡车的速度和超跑的载重一样,如果真的那么追求性能,就不要使用框架,甚至不要使用 php ,另外 Laravel 优化之后性能并没有那么差。
|
32
sagaxu 2017-04-01 11:24:05 +08:00
你重新定义了高效
|
33
sampeng 2017-04-01 14:10:18 +08:00
你就是 c 原生写,一个 sql 堵 2s ,吞吐也不可能上去
|
34
treycheng 2017-04-01 17:07:55 +08:00
这么多年还在吐槽框架性能。。。。你要性能怎么不去写 C 呢
|
35
szopen OP 一个流行框架有性能总比没性能好,否则怎么能进步?
|
36
qwe3364925 2017-04-10 10:35:56 +08:00
建议你看下 yaf 框架
|