[issue32348] Optimize asyncio.Future schedule/add/remove callback

2017-12-17 Thread Yury Selivanov
Change by Yury Selivanov : -- resolution: -> fixed stage: patch review -> resolved status: open -> closed ___ Python tracker ___

[issue32348] Optimize asyncio.Future schedule/add/remove callback

2017-12-17 Thread Yury Selivanov
Yury Selivanov added the comment: The attached benchmark from https://bugs.python.org/issue32204 shows that the updated Task is 15% faster. -- Added file: https://bugs.python.org/file47335/t.py ___ Python tracker

[issue32348] Optimize asyncio.Future schedule/add/remove callback

2017-12-17 Thread Yury Selivanov
Yury Selivanov added the comment: New changeset 1b7c11ff0ee3efafbf5b38c3c6f37de5d63efb81 by Yury Selivanov in branch 'master': bpo-32348: Optimize asyncio.Future schedule/add/remove callback. (#4907)

[issue32348] Optimize asyncio.Future schedule/add/remove callback

2017-12-16 Thread Yury Selivanov
Change by Yury Selivanov : -- keywords: +patch pull_requests: +4801 stage: -> patch review ___ Python tracker ___

[issue32348] Optimize asyncio.Future schedule/add/remove callback

2017-12-16 Thread Yury Selivanov
New submission from Yury Selivanov : Key observation: 99.9% of the time Futures and Tasks have only one callback. Currently we have a list of callbacks in each Future/Task. We can avoid list object allocation if we add a field to store the first callback. This way