[CPyUG] gevent 和 tornado 的性能比较,tornado怎么会差这么多

classic Classic list List threaded Threaded
22 messages Options
12
Reply | Threaded
Open this post in threaded view
|

[CPyUG] gevent 和 tornado 的性能比较,tornado怎么会差这么多

范三山
tornado自带的helloworld.py
,直接运行用ab压了下,才2000个请求每秒,即使是跑了8个tornado进程用nginx做负载均衡,也才5000个请求每秒。在我概念里,tornado是8000级别的。用gevent也谢了个简单的程序,单进程单线程轻松到9000每秒。难道tornado会比gevent差如此之多吗?我看tornado官网上说也是8000请求每秒能力的。

难道这就是c程序和原生python的差别吗?
或者我的设置有哪里不对

--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
强烈: 建议使用技巧: 如何有效地报告Bug
        http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html
Reply | Threaded
Open this post in threaded view
|

Re:[CPyUG] gevent 和 tornado 的性能比较,tornado怎么会差这么多

腾讯娱乐
带上源码看看。
在 2011-10-16 15:14:06,"范三山" <[hidden email]> 写道:

>tornado自带的helloworld.py
>,直接运行用ab压了下,才2000个请求每秒,即使是跑了8个tornado进程用nginx做负载均衡,也才5000个请求每秒。在我概念里,tornado是8000级别的。用gevent也谢了个简单的程序,单进程单线程轻松到9000每秒。难道tornado会比gevent差如此之多吗?我看tornado官网上说也是8000请求每秒能力的。
>
>难道这就是c程序和原生python的差别吗?
>或者我的设置有哪里不对
>
>--
>来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
>发言: [hidden email]
>退订: [hidden email] (向此发空信即退!)
>详情: http://code.google.com/p/cpyug/wiki/PythonCn
>严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
>强烈: 建议使用技巧: 如何有效地报告Bug
>        http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html

--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
强烈: 建议使用技巧: 如何有效地报告Bug
        http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html
Reply | Threaded
Open this post in threaded view
|

Re: [CPyUG] gevent 和 tornado 的性能比较,tornado怎么会差这么多

Linker Lin-2
In reply to this post by 范三山
纠结这个做啥啊?性能源于架构!

On 10/16/11, 范三山 <[hidden email]> wrote:

> tornado自带的helloworld.py
> ,直接运行用ab压了下,才2000个请求每秒,即使是跑了8个tornado进程用nginx做负载均衡,也才5000个请求每秒。在我概念里,tornado是8000级别的。用gevent也谢了个简单的程序,单进程单线程轻松到9000每秒。难道tornado会比gevent差如此之多吗?我看tornado官网上说也是8000请求每秒能力的。
>
> 难道这就是c程序和原生python的差别吗?
> 或者我的设置有哪里不对
>
> --
> 来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
> 发言: [hidden email]
> 退订: [hidden email] (向此发空信即退!)
> 详情: http://code.google.com/p/cpyug/wiki/PythonCn
> 严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
> 强烈: 建议使用技巧: 如何有效地报告Bug
>         http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html
>

--
Sent from my mobile device

*Regards,
Linker Lin
[hidden email]*

--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
强烈: 建议使用技巧: 如何有效地报告Bug
        http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html
Reply | Threaded
Open this post in threaded view
|

Re: [CPyUG] gevent 和 tornado 的性能比较,tornado怎么会差这么多

范三山
  import sys

  import tornado.httpserver
  import tornado.ioloop
  import tornado.options
  import tornado.web

  from tornado.options import define, options

  class MainHandler(tornado.web.RequestHandler):
      def get(self):
          self.write("Hello, world")

  class TestHandler(tornado.web.RequestHandler):
      def get(self):
          self.write("Hello, world")

  def main(port):
      define("port", default=port, help="run on the given port", type=int)
      tornado.options.parse_command_line()
      application = tornado.web.Application([
          (r"/", MainHandler),
          (r"/test/", TestHandler),
      ])
      http_server = tornado.httpserver.HTTPServer(application)
      http_server.listen(options.port)
      tornado.ioloop.IOLoop.instance().start()


  if __name__ == "__main__":
      port =  sys.argv[1]
      main(int(port))


开四个tornado进程,用nginx负载均衡 大概是5000每秒


import sys
import redis

from gevent import http,monkey

def callback(request):
     if request.uri == '/':
        request.add_output_header('Content-Type', 'text/html')
        request.send_reply(200, "OK", '<b>hello world</b>')
    else:
        request.add_output_header('Content-Type', 'text/html')
        request.send_reply(404, "Not Found", "<h1>Not Found</h1>")


if __name__ == '__main__':
    port = int(sys.argv[1])
    http.HTTPServer(('0.0.0.0', port), callback).serve_forever()

开四个gevent进程,用nginx负载均衡 大概是13500每秒

这差太多了

虽说性能跟架构有很大关系,但是现在我考虑是的提升单机性能,现在做的是选型的工作。


2011/10/16 Linker <[hidden email]>:

> 纠结这个做啥啊?性能源于架构!
>
> On 10/16/11, 范三山 <[hidden email]> wrote:
>> tornado自带的helloworld.py
>> ,直接运行用ab压了下,才2000个请求每秒,即使是跑了8个tornado进程用nginx做负载均衡,也才5000个请求每秒。在我概念里,tornado是8000级别的。用gevent也谢了个简单的程序,单进程单线程轻松到9000每秒。难道tornado会比gevent差如此之多吗?我看tornado官网上说也是8000请求每秒能力的。
>>
>> 难道这就是c程序和原生python的差别吗?
>> 或者我的设置有哪里不对
>>
>> --
>> 来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
>> 发言: [hidden email]
>> 退订: [hidden email] (向此发空信即退!)
>> 详情: http://code.google.com/p/cpyug/wiki/PythonCn
>> 严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
>> 强烈: 建议使用技巧: 如何有效地报告Bug
>>         http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html
>>
>
> --
> Sent from my mobile device
>
> *Regards,
> Linker Lin
> [hidden email]*
>
> --
> 来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
> 发言: [hidden email]
> 退订: [hidden email] (向此发空信即退!)
> 详情: http://code.google.com/p/cpyug/wiki/PythonCn
> 严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
> 强烈: 建议使用技巧: 如何有效地报告Bug
>        http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html
>

--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
强烈: 建议使用技巧: 如何有效地报告Bug
        http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html
Reply | Threaded
Open this post in threaded view
|

Re: [CPyUG] gevent 和 tornado 的性能比较,tornado怎么会差这么多

Shell Xu
In reply to this post by 范三山

两者应当是一个量级的,略有胜负。你差这么多,不大对。
怎么配的,写出来看看吧。

From P81HD

在 2011-10-16 下午3:14,"范三山" <[hidden email]>写道:
tornado自带的helloworld.py
,直接运行用ab压了下,才2000个请求每秒,即使是跑了8个tornado进程用nginx做负载均衡,也才5000个请求每秒。在我概念里,tornado是8000级别的。用gevent也谢了个简单的程序,单进程单线程轻松到9000每秒。难道tornado会比gevent差如此之多吗?我看tornado官网上说也是8000请求每秒能力的。

难道这就是c程序和原生python的差别吗?
或者我的设置有哪里不对

--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
强烈: 建议使用技巧: 如何有效地报告Bug
       http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html

--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
强烈: 建议使用技巧: 如何有效地报告Bug
http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html
Reply | Threaded
Open this post in threaded view
|

Re: [CPyUG] gevent 和 tornado 的性能比较,tornado怎么会差这么多

范三山
没做任何配置 ,直接  python tornado_helloworld.py  和 python gevent_http.py 运行的。
tornado单进程的时候惨不忍睹,只有不到3000的请求每秒,gevent 单进程就有9000左右

2011/10/16 Shell Xu <[hidden email]>:

> 两者应当是一个量级的,略有胜负。你差这么多,不大对。
> 怎么配的,写出来看看吧。
>
> From P81HD
>
> 在 2011-10-16 下午3:14,"范三山" <[hidden email]>写道:
>>
>> tornado自带的helloworld.py
>>
>> ,直接运行用ab压了下,才2000个请求每秒,即使是跑了8个tornado进程用nginx做负载均衡,也才5000个请求每秒。在我概念里,tornado是8000级别的。用gevent也谢了个简单的程序,单进程单线程轻松到9000每秒。难道tornado会比gevent差如此之多吗?我看tornado官网上说也是8000请求每秒能力的。
>>
>> 难道这就是c程序和原生python的差别吗?
>> 或者我的设置有哪里不对
>>
>> --
>> 来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
>> 发言: [hidden email]
>> 退订: [hidden email] (向此发空信即退!)
>> 详情: http://code.google.com/p/cpyug/wiki/PythonCn
>> 严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
>> 强烈: 建议使用技巧: 如何有效地报告Bug
>>        http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html
>
> --
> 来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
> 发言: [hidden email]
> 退订: [hidden email] (向此发空信即退!)
> 详情: http://code.google.com/p/cpyug/wiki/PythonCn
> 严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
> 强烈: 建议使用技巧: 如何有效地报告Bug
> http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html
>

--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
强烈: 建议使用技巧: 如何有效地报告Bug
        http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html
Reply | Threaded
Open this post in threaded view
|

Re: [CPyUG] gevent 和 tornado 的性能比较,tornado怎么会差这么多

范三山
我很不解的是我记得很清楚一年前测tornado的时候就是8000这个量级的

2011/10/16 范三山 <[hidden email]>:

> 没做任何配置 ,直接  python tornado_helloworld.py  和 python gevent_http.py 运行的。
> tornado单进程的时候惨不忍睹,只有不到3000的请求每秒,gevent 单进程就有9000左右
>
> 2011/10/16 Shell Xu <[hidden email]>:
>> 两者应当是一个量级的,略有胜负。你差这么多,不大对。
>> 怎么配的,写出来看看吧。
>>
>> From P81HD
>>
>> 在 2011-10-16 下午3:14,"范三山" <[hidden email]>写道:
>>>
>>> tornado自带的helloworld.py
>>>
>>> ,直接运行用ab压了下,才2000个请求每秒,即使是跑了8个tornado进程用nginx做负载均衡,也才5000个请求每秒。在我概念里,tornado是8000级别的。用gevent也谢了个简单的程序,单进程单线程轻松到9000每秒。难道tornado会比gevent差如此之多吗?我看tornado官网上说也是8000请求每秒能力的。
>>>
>>> 难道这就是c程序和原生python的差别吗?
>>> 或者我的设置有哪里不对
>>>
>>> --
>>> 来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
>>> 发言: [hidden email]
>>> 退订: [hidden email] (向此发空信即退!)
>>> 详情: http://code.google.com/p/cpyug/wiki/PythonCn
>>> 严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
>>> 强烈: 建议使用技巧: 如何有效地报告Bug
>>>        http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html
>>
>> --
>> 来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
>> 发言: [hidden email]
>> 退订: [hidden email] (向此发空信即退!)
>> 详情: http://code.google.com/p/cpyug/wiki/PythonCn
>> 严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
>> 强烈: 建议使用技巧: 如何有效地报告Bug
>> http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html
>>
>

--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
强烈: 建议使用技巧: 如何有效地报告Bug
        http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html
Reply | Threaded
Open this post in threaded view
|

Re: [CPyUG] gevent 和 tornado 的性能比较,tornado怎么会差这么多

机械唯物主义 : linjunhalida
In reply to this post by 范三山
上测试方式.  ab?

2011/10/16 范三山 <[hidden email]>:
> 没做任何配置 ,直接  python tornado_helloworld.py  和 python gevent_http.py 运行的。
> tornado单进程的时候惨不忍睹,只有不到3000的请求每秒,gevent 单进程就有9000左右
>

--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
强烈: 建议使用技巧: 如何有效地报告Bug
        http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html
Reply | Threaded
Open this post in threaded view
|

Re: [CPyUG] gevent 和 tornado 的性能比较,tornado怎么会差这么多

范三山
是ab

在 2011年10月16日 下午6:27,机械唯物主义 : linjunhalida <[hidden email]> 写道:

> 上测试方式.  ab?
>
> 2011/10/16 范三山 <[hidden email]>:
>> 没做任何配置 ,直接  python tornado_helloworld.py  和 python gevent_http.py 运行的。
>> tornado单进程的时候惨不忍睹,只有不到3000的请求每秒,gevent 单进程就有9000左右
>>
>
> --
> 来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
> 发言: [hidden email]
> 退订: [hidden email] (向此发空信即退!)
> 详情: http://code.google.com/p/cpyug/wiki/PythonCn
> 严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
> 强烈: 建议使用技巧: 如何有效地报告Bug
>        http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html
>

--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
强烈: 建议使用技巧: 如何有效地报告Bug
        http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html
Reply | Threaded
Open this post in threaded view
|

Re: [CPyUG] gevent 和 tornado 的性能比较,tornado怎么会差这么多

机械唯物主义 : linjunhalida
具体测试用例, 打包发一下? 这样大家可以在自己机器上面实测?

2011/10/16 范三山 <[hidden email]>:
> 是ab
>

--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
强烈: 建议使用技巧: 如何有效地报告Bug
        http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html
Reply | Threaded
Open this post in threaded view
|

Re: [CPyUG] gevent 和 tornado 的性能比较,tornado怎么会差这么多

heww0205
In reply to this post by 范三山
很明显这个测试的代码就不公平!

你是为了测试 gevent 和 tornado 的 web server 。

可是 tornado 的用了web framework,这个web framework是要做很多额外工作的。 gevent 的确是纯粹的 WSGI 。

其实你应该让 tornado 的 WSGIApplication 跑在 gevent 下, 然后测试对比。


或者让 tornado 也直接 WSGI

        import httpserver
        import ioloop

        def handle_request(request):
           message = "<b>hello world</b>"
           request.write("HTTP/1.1 200 OK\r\nContent-Length: %d\r\n\r\n%s" % (
                         len(message), message))
           request.finish()

        http_server = httpserver.HTTPServer(handle_request)
        http_server.listen(8888)
        ioloop.IOLoop.instance().start()



2011/10/16 范三山 <[hidden email]>
 import sys

 import tornado.httpserver
 import tornado.ioloop
 import tornado.options
 import tornado.web

 from tornado.options import define, options

 class MainHandler(tornado.web.RequestHandler):
     def get(self):
         self.write("Hello, world")

 class TestHandler(tornado.web.RequestHandler):
     def get(self):
         self.write("Hello, world")

 def main(port):
     define("port", default=port, help="run on the given port", type=int)
     tornado.options.parse_command_line()
     application = tornado.web.Application([
         (r"/", MainHandler),
         (r"/test/", TestHandler),
     ])
     http_server = tornado.httpserver.HTTPServer(application)
     http_server.listen(options.port)
     tornado.ioloop.IOLoop.instance().start()


 if __name__ == "__main__":
     port =  sys.argv[1]
     main(int(port))


开四个tornado进程,用nginx负载均衡 大概是5000每秒


import sys
import redis

from gevent import http,monkey

def callback(request):
    if request.uri == '/':
       request.add_output_header('Content-Type', 'text/html')
       request.send_reply(200, "OK", '<b>hello world</b>')
   else:
       request.add_output_header('Content-Type', 'text/html')
       request.send_reply(404, "Not Found", "<h1>Not Found</h1>")


if __name__ == '__main__':
   port = int(sys.argv[1])
   http.HTTPServer(('0.0.0.0', port), callback).serve_forever()

开四个gevent进程,用nginx负载均衡 大概是13500每秒

这差太多了

虽说性能跟架构有很大关系,但是现在我考虑是的提升单机性能,现在做的是选型的工作。


2011/10/16 Linker <[hidden email]>:
> 纠结这个做啥啊?性能源于架构!
>
> On 10/16/11, 范三山 <[hidden email]> wrote:
>> tornado自带的helloworld.py
>> ,直接运行用ab压了下,才2000个请求每秒,即使是跑了8个tornado进程用nginx做负载均衡,也才5000个请求每秒。在我概念里,tornado是8000级别的。用gevent也谢了个简单的程序,单进程单线程轻松到9000每秒。难道tornado会比gevent差如此之多吗?我看tornado官网上说也是8000请求每秒能力的。
>>
>> 难道这就是c程序和原生python的差别吗?
>> 或者我的设置有哪里不对
>>
>> --
>> 来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
>> 发言: [hidden email]
>> 退订: [hidden email] (向此发空信即退!)
>> 详情: http://code.google.com/p/cpyug/wiki/PythonCn
>> 严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
>> 强烈: 建议使用技巧: 如何有效地报告Bug
>>         http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html
>>
>
> --
> Sent from my mobile device
>
> *Regards,
> Linker Lin
> [hidden email]*
>
> --
> 来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
> 发言: [hidden email]
> 退订: [hidden email] (向此发空信即退!)
> 详情: http://code.google.com/p/cpyug/wiki/PythonCn
> 严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
> 强烈: 建议使用技巧: 如何有效地报告Bug
>        http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html
>

--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
强烈: 建议使用技巧: 如何有效地报告Bug
       http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html

--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
强烈: 建议使用技巧: 如何有效地报告Bug
http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html
Reply | Threaded
Open this post in threaded view
|

Re: [CPyUG] gevent 和 tornado 的性能比较,tornado怎么会差这么多

lee Alexander
 应该是gevent 后面wsgi后面再加个web.py  酱紫就公平了

2011/10/16 heww0205 <[hidden email]>
很明显这个测试的代码就不公平!

你是为了测试 gevent 和 tornado 的 web server 。

可是 tornado 的用了web framework,这个web framework是要做很多额外工作的。 gevent 的确是纯粹的 WSGI 。

其实你应该让 tornado 的 WSGIApplication 跑在 gevent 下, 然后测试对比。


或者让 tornado 也直接 WSGI

        import httpserver
        import ioloop

        def handle_request(request):
           message = "<b>hello world</b>"
           request.write("HTTP/1.1 200 OK\r\nContent-Length: %d\r\n\r\n%s" % (
                         len(message), message))
           request.finish()

        http_server = httpserver.HTTPServer(handle_request)
        http_server.listen(8888)
        ioloop.IOLoop.instance().start()




2011/10/16 范三山 <[hidden email]>
 import sys

 import tornado.httpserver
 import tornado.ioloop
 import tornado.options
 import tornado.web

 from tornado.options import define, options

 class MainHandler(tornado.web.RequestHandler):
     def get(self):
         self.write("Hello, world")

 class TestHandler(tornado.web.RequestHandler):
     def get(self):
         self.write("Hello, world")

 def main(port):
     define("port", default=port, help="run on the given port", type=int)
     tornado.options.parse_command_line()
     application = tornado.web.Application([
         (r"/", MainHandler),
         (r"/test/", TestHandler),
     ])
     http_server = tornado.httpserver.HTTPServer(application)
     http_server.listen(options.port)
     tornado.ioloop.IOLoop.instance().start()


 if __name__ == "__main__":
     port =  sys.argv[1]
     main(int(port))


开四个tornado进程,用nginx负载均衡 大概是5000每秒


import sys
import redis

from gevent import http,monkey

def callback(request):
    if request.uri == '/':
       request.add_output_header('Content-Type', 'text/html')
       request.send_reply(200, "OK", '<b>hello world</b>')
   else:
       request.add_output_header('Content-Type', 'text/html')
       request.send_reply(404, "Not Found", "<h1>Not Found</h1>")


if __name__ == '__main__':
   port = int(sys.argv[1])
   http.HTTPServer(('0.0.0.0', port), callback).serve_forever()

开四个gevent进程,用nginx负载均衡 大概是13500每秒

这差太多了

虽说性能跟架构有很大关系,但是现在我考虑是的提升单机性能,现在做的是选型的工作。


2011/10/16 Linker <[hidden email]>:
> 纠结这个做啥啊?性能源于架构!
>
> On 10/16/11, 范三山 <[hidden email]> wrote:
>> tornado自带的helloworld.py
>> ,直接运行用ab压了下,才2000个请求每秒,即使是跑了8个tornado进程用nginx做负载均衡,也才5000个请求每秒。在我概念里,tornado是8000级别的。用gevent也谢了个简单的程序,单进程单线程轻松到9000每秒。难道tornado会比gevent差如此之多吗?我看tornado官网上说也是8000请求每秒能力的。
>>
>> 难道这就是c程序和原生python的差别吗?
>> 或者我的设置有哪里不对
>>
>> --
>> 来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
>> 发言: [hidden email]
>> 退订: [hidden email] (向此发空信即退!)
>> 详情: http://code.google.com/p/cpyug/wiki/PythonCn
>> 严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
>> 强烈: 建议使用技巧: 如何有效地报告Bug
>>         http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html
>>
>
> --
> Sent from my mobile device
>
> *Regards,
> Linker Lin
> [hidden email]*
>
> --
> 来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
> 发言: [hidden email]
> 退订: [hidden email] (向此发空信即退!)
> 详情: http://code.google.com/p/cpyug/wiki/PythonCn
> 严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
> 强烈: 建议使用技巧: 如何有效地报告Bug
>        http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html
>

--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
强烈: 建议使用技巧: 如何有效地报告Bug
       http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html

--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
强烈: 建议使用技巧: 如何有效地报告Bug
http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html



--

--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
强烈: 建议使用技巧: 如何有效地报告Bug
http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html
Reply | Threaded
Open this post in threaded view
|

Re: [CPyUG] gevent 和 tornado 的性能比较,tornado怎么会差这么多

lee Alexander
ps,再说官网的benchmark是单进程3500,4进程前面加nginx8K的。对比起来gevent当wsgi server的时候和tornado半斤八两也就稳定性高点。

2011/10/16 lee Alexander <[hidden email]>
 应该是gevent 后面wsgi后面再加个web.py  酱紫就公平了


2011/10/16 heww0205 <[hidden email]>
很明显这个测试的代码就不公平!

你是为了测试 gevent 和 tornado 的 web server 。

可是 tornado 的用了web framework,这个web framework是要做很多额外工作的。 gevent 的确是纯粹的 WSGI 。

其实你应该让 tornado 的 WSGIApplication 跑在 gevent 下, 然后测试对比。


或者让 tornado 也直接 WSGI

        import httpserver
        import ioloop

        def handle_request(request):
           message = "<b>hello world</b>"
           request.write("HTTP/1.1 200 OK\r\nContent-Length: %d\r\n\r\n%s" % (
                         len(message), message))
           request.finish()

        http_server = httpserver.HTTPServer(handle_request)
        http_server.listen(8888)
        ioloop.IOLoop.instance().start()




2011/10/16 范三山 <[hidden email]>
 import sys

 import tornado.httpserver
 import tornado.ioloop
 import tornado.options
 import tornado.web

 from tornado.options import define, options

 class MainHandler(tornado.web.RequestHandler):
     def get(self):
         self.write("Hello, world")

 class TestHandler(tornado.web.RequestHandler):
     def get(self):
         self.write("Hello, world")

 def main(port):
     define("port", default=port, help="run on the given port", type=int)
     tornado.options.parse_command_line()
     application = tornado.web.Application([
         (r"/", MainHandler),
         (r"/test/", TestHandler),
     ])
     http_server = tornado.httpserver.HTTPServer(application)
     http_server.listen(options.port)
     tornado.ioloop.IOLoop.instance().start()


 if __name__ == "__main__":
     port =  sys.argv[1]
     main(int(port))


开四个tornado进程,用nginx负载均衡 大概是5000每秒


import sys
import redis

from gevent import http,monkey

def callback(request):
    if request.uri == '/':
       request.add_output_header('Content-Type', 'text/html')
       request.send_reply(200, "OK", '<b>hello world</b>')
   else:
       request.add_output_header('Content-Type', 'text/html')
       request.send_reply(404, "Not Found", "<h1>Not Found</h1>")


if __name__ == '__main__':
   port = int(sys.argv[1])
   http.HTTPServer(('0.0.0.0', port), callback).serve_forever()

开四个gevent进程,用nginx负载均衡 大概是13500每秒

这差太多了

虽说性能跟架构有很大关系,但是现在我考虑是的提升单机性能,现在做的是选型的工作。


2011/10/16 Linker <[hidden email]>:
> 纠结这个做啥啊?性能源于架构!
>
> On 10/16/11, 范三山 <[hidden email]> wrote:
>> tornado自带的helloworld.py
>> ,直接运行用ab压了下,才2000个请求每秒,即使是跑了8个tornado进程用nginx做负载均衡,也才5000个请求每秒。在我概念里,tornado是8000级别的。用gevent也谢了个简单的程序,单进程单线程轻松到9000每秒。难道tornado会比gevent差如此之多吗?我看tornado官网上说也是8000请求每秒能力的。
>>
>> 难道这就是c程序和原生python的差别吗?
>> 或者我的设置有哪里不对
>>
>> --
>> 来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
>> 发言: [hidden email]
>> 退订: [hidden email] (向此发空信即退!)
>> 详情: http://code.google.com/p/cpyug/wiki/PythonCn
>> 严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
>> 强烈: 建议使用技巧: 如何有效地报告Bug
>>         http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html
>>
>
> --
> Sent from my mobile device
>
> *Regards,
> Linker Lin
> [hidden email]*
>
> --
> 来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
> 发言: [hidden email]
> 退订: [hidden email] (向此发空信即退!)
> 详情: http://code.google.com/p/cpyug/wiki/PythonCn
> 严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
> 强烈: 建议使用技巧: 如何有效地报告Bug
>        http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html
>

--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
强烈: 建议使用技巧: 如何有效地报告Bug
       http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html

--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
强烈: 建议使用技巧: 如何有效地报告Bug
http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html



--




--

--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
强烈: 建议使用技巧: 如何有效地报告Bug
http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html
Reply | Threaded
Open this post in threaded view
|

Re: [CPyUG] gevent 和 tornado 的性能比较,tornado怎么会差这么多

heww0205
In reply to this post by lee Alexander
gevent 后面再加个用不着 web.py,tornado 有个 WSGIApplication

他把 tornado 测试代码中的 Application 换成 WSGIApplication, server 换成 gevent 的就可以了

2011/10/16 lee Alexander <[hidden email]>
 应该是gevent 后面wsgi后面再加个web.py  酱紫就公平了


2011/10/16 heww0205 <[hidden email]>
很明显这个测试的代码就不公平!

你是为了测试 gevent 和 tornado 的 web server 。

可是 tornado 的用了web framework,这个web framework是要做很多额外工作的。 gevent 的确是纯粹的 WSGI 。

其实你应该让 tornado 的 WSGIApplication 跑在 gevent 下, 然后测试对比。


或者让 tornado 也直接 WSGI

        import httpserver
        import ioloop

        def handle_request(request):
           message = "<b>hello world</b>"
           request.write("HTTP/1.1 200 OK\r\nContent-Length: %d\r\n\r\n%s" % (
                         len(message), message))
           request.finish()

        http_server = httpserver.HTTPServer(handle_request)
        http_server.listen(8888)
        ioloop.IOLoop.instance().start()




2011/10/16 范三山 <[hidden email]>
 import sys

 import tornado.httpserver
 import tornado.ioloop
 import tornado.options
 import tornado.web

 from tornado.options import define, options

 class MainHandler(tornado.web.RequestHandler):
     def get(self):
         self.write("Hello, world")

 class TestHandler(tornado.web.RequestHandler):
     def get(self):
         self.write("Hello, world")

 def main(port):
     define("port", default=port, help="run on the given port", type=int)
     tornado.options.parse_command_line()
     application = tornado.web.Application([
         (r"/", MainHandler),
         (r"/test/", TestHandler),
     ])
     http_server = tornado.httpserver.HTTPServer(application)
     http_server.listen(options.port)
     tornado.ioloop.IOLoop.instance().start()


 if __name__ == "__main__":
     port =  sys.argv[1]
     main(int(port))


开四个tornado进程,用nginx负载均衡 大概是5000每秒


import sys
import redis

from gevent import http,monkey

def callback(request):
    if request.uri == '/':
       request.add_output_header('Content-Type', 'text/html')
       request.send_reply(200, "OK", '<b>hello world</b>')
   else:
       request.add_output_header('Content-Type', 'text/html')
       request.send_reply(404, "Not Found", "<h1>Not Found</h1>")


if __name__ == '__main__':
   port = int(sys.argv[1])
   http.HTTPServer(('0.0.0.0', port), callback).serve_forever()

开四个gevent进程,用nginx负载均衡 大概是13500每秒

这差太多了

虽说性能跟架构有很大关系,但是现在我考虑是的提升单机性能,现在做的是选型的工作。


2011/10/16 Linker <[hidden email]>:
> 纠结这个做啥啊?性能源于架构!
>
> On 10/16/11, 范三山 <[hidden email]> wrote:
>> tornado自带的helloworld.py
>> ,直接运行用ab压了下,才2000个请求每秒,即使是跑了8个tornado进程用nginx做负载均衡,也才5000个请求每秒。在我概念里,tornado是8000级别的。用gevent也谢了个简单的程序,单进程单线程轻松到9000每秒。难道tornado会比gevent差如此之多吗?我看tornado官网上说也是8000请求每秒能力的。
>>
>> 难道这就是c程序和原生python的差别吗?
>> 或者我的设置有哪里不对
>>
>> --
>> 来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
>> 发言: [hidden email]
>> 退订: [hidden email] (向此发空信即退!)
>> 详情: http://code.google.com/p/cpyug/wiki/PythonCn
>> 严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
>> 强烈: 建议使用技巧: 如何有效地报告Bug
>>         http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html
>>
>
> --
> Sent from my mobile device
>
> *Regards,
> Linker Lin
> [hidden email]*
>
> --
> 来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
> 发言: [hidden email]
> 退订: [hidden email] (向此发空信即退!)
> 详情: http://code.google.com/p/cpyug/wiki/PythonCn
> 严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
> 强烈: 建议使用技巧: 如何有效地报告Bug
>        http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html
>

--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
强烈: 建议使用技巧: 如何有效地报告Bug
       http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html

--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
强烈: 建议使用技巧: 如何有效地报告Bug
http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html



--

--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
强烈: 建议使用技巧: 如何有效地报告Bug
http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html

--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
强烈: 建议使用技巧: 如何有效地报告Bug
http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html
Reply | Threaded
Open this post in threaded view
|

Re: [CPyUG] gevent 和 tornado 的性能比较,tornado怎么会差这么多

闲云无心-2
https://github.com/methane/echoserver

这边也有一个多语言/框架的测试集合

--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
强烈: 建议使用技巧: 如何有效地报告Bug
http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html
Reply | Threaded
Open this post in threaded view
|

Re: [CPyUG] gevent 和 tornado 的性能比较,tornado怎么会差这么多

limodou
2011/10/16 闲云无心 <[hidden email]>:
> https://github.com/methane/echoserver
>
> 这边也有一个多语言/框架的测试集合
>

看了一下,好象只是用来测server的。其实一个web要远比一个server复杂得多,设计不好,server再快也没用。

--
I like python!
UliPad <<The Python Editor>>: http://code.google.com/p/ulipad/
UliWeb <<simple web framework>>: http://code.google.com/p/uliweb/
My Blog: http://hi.baidu.com/limodou

--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
强烈: 建议使用技巧: 如何有效地报告Bug
        http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html
Reply | Threaded
Open this post in threaded view
|

Re: [CPyUG] gevent 和 tornado 的性能比较,tornado怎么会差这么多

kimjxie
同样认同设计比工具更重要, 不过还是贴一个对比吧 :D
http://nichol.as/benchmark-of-python-web-servers

2011/10/16 limodou <[hidden email]>
2011/10/16 闲云无心 <[hidden email]>:
> https://github.com/methane/echoserver
>
> 这边也有一个多语言/框架的测试集合
>

看了一下,好象只是用来测server的。其实一个web要远比一个server复杂得多,设计不好,server再快也没用。

--
I like python!
UliPad <<The Python Editor>>: http://code.google.com/p/ulipad/
UliWeb <<simple web framework>>: http://code.google.com/p/uliweb/
My Blog: http://hi.baidu.com/limodou

--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
强烈: 建议使用技巧: 如何有效地报告Bug
       http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html

--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
强烈: 建议使用技巧: 如何有效地报告Bug
http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html
Reply | Threaded
Open this post in threaded view
|

[CPyUG] Re: gevent 和 tornado 的性能比较,tornado怎么会差这么多

我欲乘风去
In reply to this post by 范三山
老早就说。tornado是明星效应。并发能力远不如gevent,稳定性gevent更是可以用坚如磐石来形容。
tornado就是个twisted的精简版,代码��嗦死板,毫无灵性,有些代码一看就是javaer写的,是非常之不pythonic.



On Oct 16, 3:14 pm, 范三山 <[hidden email]> wrote:
> tornado自带的helloworld.py
> ,直接运行用ab压了下,才2000个请求每秒,即使是跑了8个tornado进程用nginx做负载均衡,也才5000个请求每秒。在我概念里,tornado是8000级别的。用gevent也谢了个简单的程序,单进程单线程轻松到9000每秒。难道tornado会比gevent差如此之多吗?我看tornado官网上说也是8000请求每秒能力的。
>
> 难道这就是c程序和原生python的差别吗?
> 或者我的设置有哪里不对

--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
强烈: 建议使用技巧: 如何有效地报告Bug
        http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html
Reply | Threaded
Open this post in threaded view
|

Re: [CPyUG] Re: gevent 和 tornado 的性能比较,tornado怎么会差这么多

依云
On Sun, Oct 16, 2011 at 06:42:15PM -0700, 我欲乘风去 wrote:
> 老早就说。tornado是明星效应。并发能力远不如gevent,稳定性gevent更是可以用坚如磐石来形容。

gevent 支持 Python 3 了吗?

--
Best regards,
lilydjwg

Linux Vim Python 我的博客
http://lilydjwg.is-programmer.com/

--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
强烈: 建议使用技巧: 如何有效地报告Bug
        http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html
Reply | Threaded
Open this post in threaded view
|

Re:[CPyUG] Re: gevent 和 tornado 的性能比较,tornado怎么会差这么多

智障
In reply to this post by 我欲乘风去
哎呀,哎呀,坑死了,

刚刚学会了tornado,咋个办呀?



在 2011-10-17 09:42:15,"我欲乘风去" <[hidden email]> 写道: >老早就说。tornado是明星效应。并发能力远不如gevent,稳定性gevent更是可以用坚如磐石来形容。 >tornado就是个twisted的精简版,代码��嗦死板,毫无灵性,有些代码一看就是javaer写的,是非常之不pythonic. > > > >On Oct 16, 3:14 pm, 范三山 <[hidden email]> wrote: >> tornado自带的helloworld.py >> ,直接运行用ab压了下,才2000个请求每秒,即使是跑了8个tornado进程用nginx做负载均衡,也才5000个请求每秒。在我概念里,tornado是8000级别的。用gevent也谢了个简单的程序,单进程单线程轻松到9000每秒。难道tornado会比gevent差如此之多吗?我看tornado官网上说也是8000请求每秒能力的。 >> >> 难道这就是c程序和原生python的差别吗? >> 或者我的设置有哪里不对 > >--  >来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表) >发言: [hidden email] >退订: [hidden email] (向此发空信即退!) >详情: http://code.google.com/p/cpyug/wiki/PythonCn >严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp >强烈: 建议使用技巧: 如何有效地报告Bug >        http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html


--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
强烈: 建议使用技巧: 如何有效地报告Bug
http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html
12