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

Reply via email to