[issue11273] asyncore creates selec (or poll) on every iteration
STINNER Victor added the comment: On the other hand, it appears to be quite difficult to integrate such a massive change into asyncore in a fully backward compatible manner. At least, it's not clear to me how to do this without breaking code relying on map's parameter and asyncore.socket_map. Python 3.4 has now asyncio which creates a selector object which has register/unregister methods and so benefit of performances enhancements of epoll/kqueue/devpoll. Since Giampaolo cares of backward compatibility of asyncore, and the fact that asyncore is now marked as deprecated (This module exists for backwards compatibility only. For new code we recommend using asyncio.), I close this issue as wont fix (wont fix in asyncore, but it's already fixed in asyncio ;-)). -- nosy: +haypo resolution: - wont fix status: open - closed ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue11273 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue11273] asyncore creates selec (or poll) on every iteration
Changes by Antoine Pitrou pit...@free.fr: -- versions: -Python 2.6, Python 2.7, Python 3.1, Python 3.2 ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue11273 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue11273] asyncore creates selec (or poll) on every iteration
Giampaolo Rodola' g.rod...@gmail.com added the comment: I agree it would be great to do this, in fact I'm using a modified version of asyncore supporting register(), unregister() and modify() methods for file descriptors, and the performance benefits are enormous. On the other hand, it appears to be quite difficult to integrate such a massive change into asyncore in a fully backward compatible manner. At least, it's not clear to me how to do this without breaking code relying on map's parameter and asyncore.socket_map. -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue11273 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue11273] asyncore creates selec (or poll) on every iteration
New submission from Марк Коренберг socketp...@gmail.com: select.poll() object or r,w,e arrays for select() should not be built from the start in each iteration. For performance issue, such objects should be created in loop() function and modified in add_channel/del_channel. As we do not know, what type of event loop (select or poll) will be choosed, we must either build both (bad performance anyway) or create new class: 1. new class a-la poller should be created, accepting map and use_poll parameters. poll() should be moved to poller.poll() 2. The dispatcher class should accept poller as parameter (not just map) 3. add_channel and del_channel should add/remove items in poller (select.poll.modify or list.remove for r,w,e) 4. poller should have weakref to each controlled dispatcher just for unregistering dead dispatchers via weakref callback. I can create a patch, but will not start until someone approve my idea. -- components: Library (Lib) messages: 128965 nosy: mmarkk priority: normal severity: normal status: open title: asyncore creates selec (or poll) on every iteration type: performance versions: Python 2.6, Python 2.7, Python 3.1, Python 3.2, Python 3.3 ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue11273 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue11273] asyncore creates selec (or poll) on every iteration
Changes by Giampaolo Rodola' g.rod...@gmail.com: -- nosy: +giampaolo.rodola ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue11273 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com