为什么在创建太多的小任务时,Python的 asyncio性能会下降?

编程语言 2026-07-09

我在研究Python的 asyncio,发现当我创建大量非常小的异步任务时,性能会变差。

import asyncio
import time

async def tiny_task():
    await asyncio.sleep(0)

async def main():
    tasks = [asyncio.create_task(tiny_task()) for _ in range(100000)]
    await asyncio.gather(*tasks)

start = time.time()
asyncio.run(main())
print(time.time() - start)

解决方案

并不存在“性能下降”——只是为每个任务创建并执行那一行代码所需的开销时间。

将任务数量从100_000增加到1_000_000时,使用你的代码片段实际显示出比线性增长更优的时间表现 -

因为这些任务实际上并不执行异步等待,只是在事件循环中进行一次让步——因此CPU预计会100% 忙于运行这段代码——并且由于asyncio的特性,它是在单个线程中完成的——因此也只会在一个处理器核心上运行。

站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。

相关文章