On Wed, Feb 24, 2016 at 9:13 AM, Marko Rauhamaa <ma...@pacujo.net> wrote: > Ian Kelly <ian.g.ke...@gmail.com>: > >> On Wed, Feb 24, 2016 at 8:23 AM, Marko Rauhamaa <ma...@pacujo.net> wrote: >>> Tem Pl <rtemp...@gmail.com>: >>>> Is there something wrong with this implementation? >>> >>> It's a "fork bomb". >> >> Isn't that the point of the benchmark? > > I don't quite see the point of the program as it doesn't resemble > anything I'd ever have an urge to write.
That's reasonable. asyncio is designed for I/O-bound work, so a fair response to the benchmark is that subjecting it to a CPU-bound stress test is perhaps missing the point. I was curious about how much the selector-based event loop might be influencing the timing, so I tried instrumenting the selector. class ProfiledSelector(selectors.DefaultSelector): def __init__(self): super().__init__() self._calls = collections.Counter() def select(self, timeout=None): self._calls['select'] += 1 return super().select(timeout) def register(self, fileobj, events, data=None): self._calls['register'] += 1 return super().register(fileobj, events, data) selector = ProfiledSelector() loop = asyncio.SelectorEventLoop(selector) asyncio.set_event_loop(loop) loop.run_until_complete(coroutine()) # 499999500000 selector._calls # Counter({'select': 20, 'register': 1}) Only 20 iterations of the event loop? That doesn't seem unreasonable. -- https://mail.python.org/mailman/listinfo/python-list