Django 这性能,也慢的太夸张了.......

2020-03-16 19:16:11 +08:00
 black11black

如题,前几天看论坛讨论帖都觉得 django 不错,学前先测了测性能。。

配置:(平台 ubuntu )

django-admin startproject helloworld
# 编写一个 echo,访问 127.0.0.1:8080 回复"hello world"
gunicorn HelloWorld.wsgi -b 127.0.0.1:8080 -w 9

压测:

wrk -t16 -c500 -d10 http://127.0.0.1:8080

得到数据:

单进程 并发 794.46r/秒 ,平均延迟 140.74ms 九进程 并发 7700r/秒,平均延迟 28ms

虽然之前就想到 django 不会很快,毕竟 py 写服务性能也没那么重要,但是这也慢的太太太太太夸张了吧。。本地 echo 居然只有 700qps 的性能,本地 echo 延迟 0.1 秒,这。。。。。。。。。

对比一下 py 框架现在异步框架性能单线程 express 也能挑战一下的,就算 wsgi 跑的 flask,fork 的 rps 怎么也有两万,我用不到那么快,但是你也别慢的太夸张啊。。。。本地延迟这么高,干点啥畏首畏尾。。。。

是我哪里配置错了吗?

19579 次点击
所在节点    Django
94 条回复
jimrok
2020-03-17 22:10:18 +08:00
多来几台机器不就好了,机器贵还是人贵。有些网站总共也没有几个并发,200ms 的响应时间用户体验也香呀。搞大型网站的,估计也轮不到 python,golang,java,scala,lua,c++都排着队等着搬砖呢。
justfortest
2020-03-17 23:22:20 +08:00
@wuwukai007 其实都差不多,在没有测试的基础上,编译过了代码也不代表没问题,只是后来人看的时候通过 ide 能方便跳转。
black11black
2020-03-18 00:17:24 +08:00
@flypi 这个总结有点道理
sagaxu
2020-03-18 00:21:32 +08:00
@justfortest 编译过了不保证正确,但是编译不过一定不正确,能过编译,至少能解决诸如变量未定义,拼写错误,参数传错类型,误删有人调用的方法等等低级错误。
black11black
2020-03-18 00:21:56 +08:00
@LokiSharp 差了几个数量级属于缺乏语言性能常识,即使极端情况下原生 cpython 解释与 c/c++的性能量级也不会需要“几”这个字来形容,不谈 py 部署多出来的 1%关键性能优化问题。
sagaxu
2020-03-18 00:27:43 +08:00
@black11black 极端情况下原生 cpython 能比 C++慢 100 倍甚至 1000 倍
black11black
2020-03-18 00:37:40 +08:00
@sagaxu 极端情况下一百倍正常,一千倍如果你见过,请列出证据,我反正是没见过。
black11black
2020-03-18 00:55:18 +08:00
@Cbdy 感谢,文章很有意思。不过这么一看 go 服务也并没比 py 快到跨量级的程度,基于 JIT 的 py+prefork 应该能做到整体五成到六成的水平,比较意外,我以为 go 应该再快一些
windfarer
2020-03-18 00:57:44 +08:00
不知道大佬们是做啥业务的有那么高的 qps
sagaxu
2020-03-18 01:14:52 +08:00
LokiSharp
2020-03-18 08:08:42 +08:00
@black11black 然而 Python 跑在 Pypy 和 CPython 上是两个 Python
pypy 甚至跑纯标准库写的东西都不一定能跑起来,更不用提各种要求 C 扩展的库
gz911122
2020-03-18 10:16:33 +08:00
@luckyrayyy tomcat 是不咋地
但是 spring boot webflux 表现就好了很多
bnm965321
2020-03-18 18:17:32 +08:00
1000qps 就能让你的网站每天由 1000 万 pv。

我觉得绝大多数网站很难达到这个水平吧?
bnm965321
2020-03-18 18:19:26 +08:00
@jimrok instagram,日活比 QQ 还高

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/653352

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX