Anton Putra在 YouTube 上发了一条视频,对比了 FastAPI (Python) 和 Node.js 的服务端性能表现。第一轮是测试单纯的 Get 请求,第二轮是测试 PostgreSQL 数据库的写入。两轮测试下来,Python 的综合性能表现差不多是 Node.js 的 1/10。
一般来讲服务端的性能瓶颈都在数据库 IO,很少会遇到 CPU 瓶颈。Anton Putra 测试过不少语言和服务端框架,Python 是为数不多能在测试中段就能撞上 CPU 性能墙的。而且撞墙以后也没有恢复,后半段被锁死在 50% 的 CPU usage 上跑完了全程,也不知道为什么。
FastAPI 已经是 Python 生态内性能比较好的框架了,我真不敢想 Django 这种老乌龟得慢成什么样。没有 jit,再加上 gil 的限制,Python 的性能真的……配不上它今天的江湖地位。
最关键的是,Node.js 在 JavaScript 生态内的性能也不突出,甚至可以说是比较拉胯的……