2024 年了,是 Gevent 还是选择 asyncio Part 1?

2024 年了,是 Gevent 还是选择 asyncio Part 1?

💡 原文中文,约6900字,阅读约需17分钟。
📝

内容提要

这篇文章主要比较了Django、Flask、FastAPI和Starlette四个框架在Web应用中的性能。通过在Azure上进行压力测试,发现在空转情况下,asyncio的性能要优于Gevent,但在ORM + MySQL Driver的情况下,Gevent的生态要好于asyncio的生态。作者期待下一轮测试结果,看在ORM + PGSQL的情况下会有怎样的结论。

🎯

关键要点

  • 文章比较了Django、Flask、FastAPI和Starlette四个框架在Web应用中的性能。

  • 使用Azure进行压力测试,配置为8Core32G的D8as_v5机器。

  • 测试框架选择locust,模拟生产环境下的吞吐。

  • 创建MySQL实例并随机写入100万数据进行SQL查询。

  • Django、Flask、FastAPI和Starlette的代码示例展示了各自的实现方式。

  • 测试结果显示Django性能最差,其余三者性能为Flask + Gevent > Starlette > FastAPI。

  • 空转测试结果为Starlette > FastAPI > Flask + Gevent。

  • 在空转情况下,asyncio的性能优于Gevent,但在ORM + MySQL Driver情况下,Gevent的生态更好。

  • 期待下一轮测试结果,看看ORM + PGSQL的情况下会有怎样的结论。

延伸问答

在Web框架中,asyncio和Gevent的性能比较如何?

在空转情况下,asyncio的性能优于Gevent,但在ORM + MySQL Driver的情况下,Gevent的生态更好。

测试中使用了哪些Web框架?

测试中使用了Django、Flask、FastAPI和Starlette四个框架。

测试的机器配置是什么?

测试使用了Azure上的D8as_v5机器,配置为8Core32G。

在ORM + MySQL Driver的情况下,哪个框架表现最好?

在ORM + MySQL Driver的情况下,Gevent的生态表现最好。

测试结果显示哪个框架性能最差?

测试结果显示Django的性能最差。

文章中提到的下一步测试计划是什么?

作者期待下一轮测试结果,看看在ORM + PGSQL的情况下会有怎样的结论。

🏷️

标签

➡️

继续阅读