代码之家  ›  专栏  ›  技术社区  ›  Khorkrak

Eventlet或gevent或Stackless+Twisted、Pylons、Django和SQL炼金术

  •  36
  • Khorkrak  · 技术社区  · 15 年前

    我们正在考虑一种混合的方法。也许可以将xmlrpc服务器部分和进程管理保持在Twisted中,并在代码中实现其他东西,这些代码至少在某种程度上看起来是同步的,但实际上并不是同步的。再说一遍,我喜欢显式的,而不是隐式的,所以我必须多考虑一点。不管怎么说,在小绿叶上-这些东西的效果如何?所以这里有Stackless,你可以从我的Gallentean阿凡达中看到,我很清楚它在CCP旗舰EVE在线游戏中的巨大成功。那Eventlet和gevent呢?目前只有Eventlet可以使用Twisted。然而,gevent声称速度更快,因为它不是一个纯python实现,而是依赖于libevent。它还声称自己的特质和缺陷更少。 gevent 据我所知只有一个人在维护。这让我有些怀疑,但所有伟大的项目都是这样开始的,所以。。。然后是 PyPy -我甚至还没读完这篇文章-就在这篇文章里看到了: Drawbacks of Stackless .

    如此混乱-我想知道到底该怎么办-听起来像Eventlet可能是最好的选择,但它真的足够稳定吗?有没有人有这方面的经验?我们应该用Stackless来代替它,因为它已经存在并且是成熟的技术——就像Twisted一样——而且它们确实很好地协同工作。但我仍然讨厌必须有一个单独的Python版本才能做到这一点。怎么办。。。。

    不过,这篇有点令人讨厌的博客文章对我来说一针见血: Asynchronous IO for Grownups 我不明白扭曲是像Java一样的评论,对我来说Java是典型的线程思维方式,但不管怎样。然而,如果猴子补丁真的像那样工作,那么哇。哇哦!

    4 回复  |  直到 8 年前
        1
  •  28
  •   Denis    15 年前

    Eventlet和gevent实际上与Stackless没有可比性,因为Stackless附带了一个不知道tasklet的标准库。以下是 socket for Stackless 但没有比这更全面的了 gevent.monkey

    eventlet和gevent都可以在Stackless而不是greenlet上运行。在某个时刻,我们甚至试着把它当作一个整体来做 GSoC project 但没有找到一个学生。

        2
  •  4
  •   fijal    15 年前

    回答你的部分问题-如果你看 http://speed.pypy.org 你会看到在PyPy上使用twisted 给你提速。这当然取决于你的工作量,但可能值得一试。


    菲哈尔

        3
  •  0
  •   Ben Ford    15 年前

    我在eventlet和repoze.bfg之上构建了一个小的实时web应用程序(我很久以前就放弃了django)。我发现eventlet和monkey补丁和Ted说的一样简单。

        4
  •  0
  •   Robert Zaremba    12 年前

    Gevent不是纯Python,它严格依赖于CPython。 Eventlet (OpenStack)和 Tornado (FriendsFeed,Quora)的部署量最大。

    推荐文章