一个高性能的 PHP 路由实现

2017-03-08 21:20:01 +08:00
 zqhong

思路参考了 Fast request routing using regular expressions

GitHub 地址:zqhong/route

5627 次点击
所在节点    分享创造
23 条回复
ioriwong
2017-03-08 22:28:30 +08:00
我来顶一下,虽然我没去看
yangqi
2017-03-08 22:47:37 +08:00
没有性能测试怎么知道高性能?高多少呢?
haiyang416
2017-03-08 23:28:11 +08:00
很久前看过那篇文章,这样的合并思路其实很多程序都在使用,友情支持下楼主。
zqhong
2017-03-09 00:22:37 +08:00
@yangqi 你说得对,中午找个时间补上。
mx1700
2017-03-09 08:15:43 +08:00
https://github.com/nikic/FastRoute
跟这个比有什么优势
zqhong
2017-03-09 13:50:35 +08:00
@yangqi
@mx1700
这是中午的性能测试结果: https://github.com/zqhong/route/issues/5
zqhong
2017-03-09 13:59:03 +08:00
@mx1700 优势是比 FastRoute 简单(代码层面)。
jarlyyn
2017-03-09 14:16:28 +08:00
看了楼主的的 benchmark 之后,觉得这个离高性能有点差距吧……

或许是 Php 本身的问题?过于追求速度没意思……
zqhong
2017-03-09 14:50:00 +08:00
@jarlyyn 标题党了,请忽略高性能这三个字。
jarlyyn
2017-03-09 14:55:15 +08:00
@zqhong

不是吐槽你,只是吐槽 php ……

另外你这个测试应该换 php7 吧,性能应该有不小的提升。
zqhong
2017-03-09 15:29:47 +08:00
@jarlyyn 我是自己都感到不好意思了。嗯,晚上换 PHP7 跑跑看。
zqhong
2017-03-09 21:25:33 +08:00
补充性能测试结果:

http://ww1.sinaimg.cn/large/ce744de6gy1fdgwdy9aghj20pc0df3yh


nikic_route(v1.2)
Requests per second: 3527.98 [#/sec] (mean)

symfony route(v3.2)
Requests per second: 5193.17 [#/sec] (mean)

zqhong route(dev-master)
Requests per second: 5923.56 [#/sec] (mean)
zqhong
2017-03-09 21:27:26 +08:00
crabRunning
2017-03-10 12:27:57 +08:00
9000+qps 我都不敢出声
usedname
2017-03-12 17:27:57 +08:00
代码里有 exit ,恕我直言,太恶心了。。
zqhong
2017-03-12 21:06:54 +08:00
@usedname 请问使用 exit 会有什么问题?
usedname
2017-03-12 21:59:35 +08:00
@zqhong #16 exit 查起来让人头疼,统一返回而不是 exit [cli 下除外]
nicoljiang
2017-03-12 22:29:16 +08:00
不错的,支持一波。
mx1700
2017-03-15 19:48:21 +08:00
不错,已 start
mx1700
2017-03-15 19:49:05 +08:00
是 已 star

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

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

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

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

© 2021 V2EX