V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Velocity Beijing 2015
O'Reilly Velocity
Web Performance and Operations
http://velocityconf.com/
YSlow
Best Practices for Speeding Up Your Web Site
luckyduck
V2EX  ›  Velocity

这个 Web Framework Benchmarks 可靠嘛?Python 貌似比 PHP 弱不少?

  •  
  •   luckyduck · 2013-09-18 17:14:03 +08:00 · 4153 次点击
    这是一个创建于 4083 天前的主题,其中的信息可能已经有所发展或是发生改变。
    地址: http://www.techempower.com/benchmarks/#section=data-r6&hw=i7&test=query

    通过该网站做的一些测试来看,凡是涉及到数据库操作的一些项目,Python都要比PHP弱不少,不知道是不是Mysql驱动不给力的原因,但如果是JSON序列化之类的字符串操作,Python则稍胜PHP。另外有的测试,Python前端都是裸奔的,没有加Nginx,不知道这是不是成绩不理想的一个原因。
    第 1 条附言  ·  2013-09-18 17:50:32 +08:00
    这里还有一个PHP和Python3的性能测试:
    http://benchmarksgame.alioth.debian.org/u64q/php.php
    11 条回复    1970-01-01 08:00:00 +08:00
    liuxurong
        1
    liuxurong  
       2013-09-18 17:26:09 +08:00
    对。我用Flask和PHP效率就差了10倍。
    cctvsmg
        2
    cctvsmg  
       2013-09-18 17:33:43 +08:00   ❤️ 1
    谢谢楼主,终于又找到这个网页了
    这表格挺专业的
    里面有nginx-lua(淘宝的人做的)
    排名非常靠前哈哈

    这测评恐怕对python不太公平吧
    python如果使用pypy
    tornado+gevent
    我记得并发数是和c++ web server持平的
    notedit
        3
    notedit  
       2013-09-18 17:40:27 +08:00
    php 是一门语言 flask是一个框架 这样比明显不公平
    luckyduck
        4
    luckyduck  
    OP
       2013-09-18 17:45:18 +08:00
    @cctvsmg 这里面好几项都是用了pypy 测试的,Platform那一列有标注,不过可能没搭配gevent。
    love
        5
    love  
       2013-09-18 17:47:32 +08:00
    如果都用一个差不多规模的框架的话,php每个请求都要运行一次整个框架,python只需运行请求相关的部分。
    luckyduck
        6
    luckyduck  
    OP
       2013-09-18 17:48:24 +08:00
    @notedit 这里面也有PHP框架的测试,比如 http://www.yafdev.com/http://phalconphp.com/ 它们都比flask排名靠前。
    luckyduck
        7
    luckyduck  
    OP
       2013-09-18 17:52:23 +08:00
    @notedit 不好意思,那两个框架是用C写的PHP扩展,和flask没有可比性。
    FrankFang128
        8
    FrankFang128  
       2013-09-18 17:53:14 +08:00
    跑分有意思?
    scourgen
        9
    scourgen  
       2013-09-18 18:00:52 +08:00
    这种测试没什么意义,比如你贴的这个页面,测的是每个框架下访问数据库并且返回JSON字符串这整个过程的速度,但事实上,大部分框架进行数据库处理和JSON字符串转换都是使用的该语言原生的类库和函数,这个过程和你用的是哪种框架是没有什么关系的,比如JSON操作,python框架都会用到核心函数json.dump(),php框架都会用到核心函数json_encode()等等,当然数据库操作也是一样的,不管你用的框架是什么,核心函数和过程都是基本类似的。

    所以,这个最核心的处理业务逻辑的过程并不会因为你用的框架不同而有变化。

    这个测试其实测的是“框架帮你额外干了别的事情所耗费的时间”,所以“各类功能强大的开发框架名次靠后,但如果直接用开发这个框架的语言速度却很快”就变得能够理解了。最典型就是php,纯php开发的时候性能排第五,但用php开发的symfony2速度却显得不是很快,原因在于symfony2帮你做了很多背后的事情,但你没有意识到所以误认为他很慢。
    mywaiting
        10
    mywaiting  
       2013-09-18 18:02:10 +08:00
    其他的不说,我只说我熟悉的PHP和Python:

    Yaf和phalcon严格来说,不能算是PHP的语言框架,因为它是C的PHP extension形式的。C写的东西,大家都懂的。要不你试试来个Python的C extension。
    scourgen
        11
    scourgen  
       2013-09-18 18:07:46 +08:00
    PHP语言发展的时间很久,很多函数都因为历史问题以及和PHP语言本身的弱类型特性做了大量的兼容操作,因为要尽量让各种代码都可以运行,所以只好用性能换兼容性,而在程序的效能上必然会做出一些让步。

    Yaf和Phalcon做的事情其实是把本来用php实现的东西转而用C实现,逆转了这个过程,降低了兼容性但换回了速度,以获取性能上的提升。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1118 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 23:34 · PVG 07:34 · LAX 15:34 · JFK 18:34
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.