今天用 ab 工具测试了一下框架,高效的性能让我吃惊

2017-03-31 11:35:45 +08:00
 szopen

首先展示一下其他主要框架的测试:

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

业务:

  1. 构造和输出了一个 HTML 表单
  2. 查询了一个 MySQL 空表
  3. 初始化了 session, session 存在了数据库的一个 memory 表中
  4. 路由用的是 symfony 的路由器

测试结果:

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 略低

内存占用:

  1. usage 2.4M
  2. peak 2.4M

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 相差好大

10165 次点击
所在节点    PHP
36 条回复
ysz1121
2017-03-31 15:11:16 +08:00
好低啊
otakustay
2017-03-31 17:01:22 +08:00
没看懂,楼主的意思是社区的性能测试结论是在 apache 做 web 服务器的情况下得出的,而你是用 nginx 来做测试并试图与社区的结论进行对比?
iwege
2017-03-31 20:40:34 +08:00
讨论 laravel 垫底意义不大, laravel 算是全功能框架了,要看理论上应该先看 lumen.
mingyun
2017-03-31 23:04:13 +08:00
laravel 垫底
cxbig
2017-03-31 23:25:39 +08:00
空框架?有意义么?实际的产品快不快不完全是框架的问题。
aksoft
2017-04-01 09:18:53 +08:00
追求速度 脚本 请用 lua
qqjt
2017-04-01 10:05:12 +08:00
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.”
lianxiaoyi
2017-04-01 10:17:40 +08:00
yaf 秒杀全场
we3613040
2017-04-01 10:22:03 +08:00
我大 ci 就是牛逼
killerv
2017-04-01 11:19:17 +08:00
框架对比性能的意义不大,就像是对比卡车的速度和超跑的载重一样,如果真的那么追求性能,就不要使用框架,甚至不要使用 php ,另外 Laravel 优化之后性能并没有那么差。
sagaxu
2017-04-01 11:24:05 +08:00
你重新定义了高效
sampeng
2017-04-01 14:10:18 +08:00
你就是 c 原生写,一个 sql 堵 2s ,吞吐也不可能上去
treycheng
2017-04-01 17:07:55 +08:00
这么多年还在吐槽框架性能。。。。你要性能怎么不去写 C 呢
szopen
2017-04-05 10:09:29 +08:00
一个流行框架有性能总比没性能好,否则怎么能进步?
qwe3364925
2017-04-10 10:35:56 +08:00
建议你看下 yaf 框架

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/351699

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX