V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
zqhong
V2EX  ›  分享创造

一个高性能的 PHP 路由实现

  •  1
     
  •   zqhong · 2017-03-08 21:20:01 +08:00 · 5628 次点击
    这是一个创建于 2851 天前的主题,其中的信息可能已经有所发展或是发生改变。
    23 条回复    2017-03-16 17:07:46 +08:00
    ioriwong
        1
    ioriwong  
       2017-03-08 22:28:30 +08:00 via Android
    我来顶一下,虽然我没去看
    yangqi
        2
    yangqi  
       2017-03-08 22:47:37 +08:00   ❤️ 1
    没有性能测试怎么知道高性能?高多少呢?
    haiyang416
        3
    haiyang416  
       2017-03-08 23:28:11 +08:00   ❤️ 1
    很久前看过那篇文章,这样的合并思路其实很多程序都在使用,友情支持下楼主。
    zqhong
        4
    zqhong  
    OP
       2017-03-09 00:22:37 +08:00
    @yangqi 你说得对,中午找个时间补上。
    mx1700
        5
    mx1700  
       2017-03-09 08:15:43 +08:00 via Android
    https://github.com/nikic/FastRoute
    跟这个比有什么优势
    zqhong
        6
    zqhong  
    OP
       2017-03-09 13:50:35 +08:00
    @yangqi
    @mx1700
    这是中午的性能测试结果: https://github.com/zqhong/route/issues/5
    zqhong
        7
    zqhong  
    OP
       2017-03-09 13:59:03 +08:00 via Android
    @mx1700 优势是比 FastRoute 简单(代码层面)。
    jarlyyn
        8
    jarlyyn  
       2017-03-09 14:16:28 +08:00   ❤️ 1
    看了楼主的的 benchmark 之后,觉得这个离高性能有点差距吧……

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

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

    另外你这个测试应该换 php7 吧,性能应该有不小的提升。
    zqhong
        11
    zqhong  
    OP
       2017-03-09 15:29:47 +08:00 via Android
    @jarlyyn 我是自己都感到不好意思了。嗯,晚上换 PHP7 跑跑看。
    zqhong
        12
    zqhong  
    OP
       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
        13
    zqhong  
    OP
       2017-03-09 21:27:26 +08:00
    crabRunning
        14
    crabRunning  
       2017-03-10 12:27:57 +08:00
    9000+qps 我都不敢出声
    usedname
        15
    usedname  
       2017-03-12 17:27:57 +08:00   ❤️ 1
    代码里有 exit ,恕我直言,太恶心了。。
    zqhong
        16
    zqhong  
    OP
       2017-03-12 21:06:54 +08:00 via Android
    @usedname 请问使用 exit 会有什么问题?
    usedname
        17
    usedname  
       2017-03-12 21:59:35 +08:00   ❤️ 1
    @zqhong #16 exit 查起来让人头疼,统一返回而不是 exit [cli 下除外]
    nicoljiang
        18
    nicoljiang  
       2017-03-12 22:29:16 +08:00
    不错的,支持一波。
    mx1700
        19
    mx1700  
       2017-03-15 19:48:21 +08:00 via Android
    不错,已 start
    mx1700
        20
    mx1700  
       2017-03-15 19:49:05 +08:00 via Android
    是 已 star
    xlvecle
        21
    xlvecle  
       2017-03-16 10:52:22 +08:00
    唉,已残,为什么觉得你的名字和某老常委很像。
    zqhong
        22
    zqhong  
    OP
       2017-03-16 17:07:05 +08:00 via Android
    @xlvecle zqhong 这个?只能说碰巧了。已残是什么意思?
    zqhong
        23
    zqhong  
    OP
       2017-03-16 17:07:46 +08:00 via Android
    @mx1700 欢迎提交 issue 和 pull request 。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2680 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 12:16 · PVG 20:16 · LAX 04:16 · JFK 07:16
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.