Tornado 有哪些獨到的優勢?是不是被過分追捧了?
02-09
tornado 性能不錯,很輕量,比較 KISS,最終還是看你自己的需求了
個人認為是被過份吹捧了,原因在於friendfeed和Facebook的明星效應。
和python其它框架比
論效率我測試下來,低並發有1/2 gevent 高並發時候 差距更明顯。論代碼,是非常之不pythonic的,如IoLoop().instance().start()之類的很java的寫法。另,不要拿tornado和django這種純web框架比較,要比也是和eventlet,gevent之類的比。
tornado更像是一個精簡版的twisted,代碼工整,但死板,因為用了epoll,效率尚可,但絕對談不上高效
看你的場景是什麼。 正如 @lepture 所言,效率上比meinheld這種低多了, 至於讓人津津樂道的非同步,本質上是內部的epoll在發揮效能,但是這個很多別的server也一樣存在。所以其並不存在單純某一方面的絕對優勢!
大夥喜歡用,很簡單,greenlet協程國內有幾家公司在用?除了douban幾乎很少了, 同步-&>非同步-&>協程 本身是一個發展過程,你連非同步都沒用清晰的情況下去用協程基本是不靠譜的。 而且在國內普遍php這種fastcgi多進程模式的情況下,大部分人進行性能優化只能是往前走一步使用 async非同步方式了. 所以在這個範圍進行挑選的話就比較容易了.
一方面要非同步效率不錯,一方面又希望工業級應用來證明可靠性,一方面又要求lib庫豐富~~滿足這三點的也就tornado了~~ 你想想:連db,log都幫你封裝了,你還有什麼不滿足?google都用了,你還有什麼不放心的?又比以前的效率大大提升,作為一種穩定的提升手段,我覺得tornado足夠了!tornado = webpy + epoll
- webpy是為RESTful而生的框架,簡潔清晰,作者是Aaron Swartz(請google)
- epoll是IO多路復用,註冊監聽事件,非同步處理的IO請求,讓系統不用浪費時間等待,更加高效
我覺得tornado挺好的
推薦閱讀:
※為什麼 Python 裡面的 range 不包含上界?
※寫Python的時候,你有哪些奇技淫巧??
※gunicron可以搭載不同worker, 對於非同步worker支持greenlet. 但為什麼官方文檔不推薦搭載tornado worker?
※PHP 比 Python 牛在哪?