OK, I did some proper benchmarking of CPython/PyPy and stackless/gevent combinations: https://goless.readthedocs.org/en/latest/body.html#benchmarks And made the benchmarks easier to run and report.
The common trend is: PyPy/stackless = x CPython/stackless = 2x-5x PyPy/gevent = 5-10x CPython/gevent = 15x-30x On Tue, Jun 3, 2014 at 4:56 PM, Rob Galanakis <[email protected]> wrote: > Yes there is a gevent backend. Has been from day one. You can force one > over the other by setting the GOLESS_BACKEND envvar to 'stackless' or > 'gevent'. > > > On Tue, Jun 3, 2014 at 7:45 AM, Kristján Valur Jónsson < > [email protected]> wrote: > >> I also think that gevent must be somehow sub-optimal. I´ve seen >> comparisons of python web frameworks where gevent based backends don’t >> perform that well in terms of latency. >> >> Waiting for your blog, I´m still a bit confused at what you are doing. >> did you implement goless with a gevent backend? >> >> K >> >> >> >> *From:* [email protected] [mailto: >> [email protected]] *On Behalf Of *Rob Galanakis >> *Sent:* 30. maí 2014 12:47 >> >> *To:* The Stackless Python Mailing List >> *Subject:* Re: [Stackless] goless >> >> >> >> I was doing some benchmarking of goless under gevent and stackless. The >> results are pretty astonishing when you do this stuff in the interpreter! I >> will put it on GitHub later today or tomorrow and also write up a blog. >> It's possible our implementation is just not a good one regarding gevent, >> but I sort of doubt it. The stackless/gevent specific code is minimal >> (goless/backends.py) and I don't see anything ugly that we're doing there. >> Maybe something is idiomatically very different, or is gevent performance >> just not very good? >> >> Anyway, it should be easy to profile eventually. >> >> >> >> Using backend StacklessBackend >> >> Benchmarking channels: >> >> 0.13s: Sync >> >> 0.14s: Async >> >> 0.13s: Buffered(1000) >> >> Benchmarking select: >> >> 0.29s: No default case. >> >> 0.15s: With default case. >> >> >> >> Using backend GeventBackend >> >> Benchmarking channels: >> >> 0.87s: Sync >> >> 0.83s: Async >> >> 0.82s: Buffered(1000) >> >> Benchmarking select: >> >> 1.12s: No default case. >> >> 0.16s: With default case. >> >> >> >> On Tue, May 27, 2014 at 7:17 AM, Kristján Valur Jónsson < >> [email protected]> wrote: >> >> Well, I started doing some documentation using sphinx the other day but >> got sidetracked. >> >> The current documentation lives in the modules and in the unittests. >> >> I guess the only fiddly bit about it currently is to start it up. >> Currently one has to explicitly get the main loop running. This is because >> stackless _*used*_ to only allow stackless.run() on the main tasklet. >> The latest versions don’t. >> >> Once that restriction is removed, having the main loop run implicitly >> much as the gevent library does (when the Hub singleton is requested) is >> easy. >> >> I need to put that little brick in there, and then everything will run >> smoothly J >> >> >> >> K >> >> >> >> *From:* [email protected] [mailto: >> [email protected]] *On Behalf Of *Aleksandar Radulovic >> *Sent:* 23. maí 2014 11:36 >> >> >> *To:* The Stackless Python Mailing List >> *Subject:* Re: [Stackless] goless >> >> >> >> Speaking of which, when can we see some more documentation or examples on >> stacklesslib? ;) >> >> >> >> I was fiddling with it the other day and couldn't find any good enough >> examples of stacklesslib usage.. >> >> >> >> Cheers, >> >> alex >> >> >> >> On Tue, May 20, 2014 at 12:13 PM, Kristján Valur Jónsson < >> [email protected]> wrote: >> >> You may want to take a look at the latest version of “stacklesslib”, >> particularly the stacklesslib.wait module. We now have “waitable” >> channels, so that you can do similar things to >> >> select, e.g. >> >> >> >> c1 = stacklesslib.wait.WaitChannel() >> >> c2 = stacklesslib.wait.WaitChannel() >> >> … >> >> for c in stacklesslib.wait.iwait([c1, c2]): >> >> if c is c1: percolate() >> >> elif c is c2: promulgate() >> >> >> >> A “WaitChannel” is ready when its balance is non-zero. >> >> There are also “Sendable” and “Receivable” adapters for WaitChannels to >> in order to wait for either positive or negative balance. >> >> >> >> The stacklesslib.util.QueueChannel() is a channel with a fifo queue, >> which can be either unbounded (the default) or have a maximum length. This >> is, I believe, similar to Go’s channels. >> >> >> >> K >> >> >> >> >> >> *From:* [email protected] [mailto: >> [email protected]] *On Behalf Of *Christian Tismer >> *Sent:* 18. maí 2014 00:00 >> *To:* The Stackless Python Mailing List >> *Subject:* Re: [Stackless] goless >> >> >> >> On 18.04.14 12:46, Kristján Valur Jónsson wrote: >> >> Hi, I though’t I’d mention here an experimental problem that a few of my >> colleagues worked on during PyCon: >> >> Goless! >> >> http://goless.readthedocs.org/en/latest/index.html >> >> >> >> It also shows how more complex behavior can be built on top of the >> relatively simple primitives that stackless provides. >> >> >> (a bit late, but anyway better than never) >> >> Yes, quite neat thing. >> This could be used as an interesting example for the Stackless talk. >> >> cheers - Chris >> >> p.s.: actually, I'm studying Go a bit, in order to understand >> how they do stuff, how they lock, how they schedule, ... >> >> -- >> >> Christian Tismer :^) [email protected] >> >> Software Consulting : http://www.stackless.com/ >> >> Karl-Liebknecht-Str. 121 : http://www.pydica.net/ >> >> 14482 Potsdam : GPG key -> 0xFB7BEE0E >> >> phone +49 173 24 18 776 fax +49 (30) 700143-0023 >> >> >> _______________________________________________ >> Stackless mailing list >> [email protected] >> http://www.stackless.com/mailman/listinfo/stackless >> >> >> >> >> >> -- >> a lex 13 x >> http://a13x.net | @a13xnet >> >> >> _______________________________________________ >> Stackless mailing list >> [email protected] >> http://www.stackless.com/mailman/listinfo/stackless >> >> >> >> _______________________________________________ >> Stackless mailing list >> [email protected] >> http://www.stackless.com/mailman/listinfo/stackless >> > >
_______________________________________________ Stackless mailing list [email protected] http://www.stackless.com/mailman/listinfo/stackless
