一个 py 从业 10 年左右的大佬,不写 Python 之后发的一些迷思。写的可以。

2019-09-06 22:24:00 +08:00
 azuginnen
https://laisky.com/p/python-road/
10635 次点击
所在节点    Python
50 条回复
cmdOptionKana
2019-09-07 09:17:47 +08:00
@zjsxwc 呵呵哈哈哈,我也感觉 python 的宣传做得很好。
lpf0309
2019-09-07 09:23:37 +08:00
所以各位给工科研究生一个建议么,到底学 python 还是 c++还是 Java
keepeye
2019-09-07 09:32:36 +08:00
哪个生产效率高用哪个,等发展到瓶颈了再考虑重构优化性能,减少服务器开销
dcalsky
2019-09-07 09:34:14 +08:00
用 Django 原因之一就是看中他那 django admin 啊,自动搭建多舒服。
keith1126
2019-09-07 09:34:18 +08:00
@lpf0309

都学咯,至少计算机专业肯定是要都学的
azuginnen
2019-09-07 09:42:38 +08:00
@jeeyong 老哥 6. 是这个项目 https://v2ex.com/t/526867#reply10 吗?
hmxxmh
2019-09-07 09:44:15 +08:00
@niubee1 这个我蛮认同楼主的,Python 确实有瓶颈,但是大多数人碰触不到这个瓶颈,只会人云亦云的抨击,捧一个必定要踩一个的做法实在让人恶心,根据需求选择合适的语言才是程序员该做的事
T3RRY
2019-09-07 09:47:13 +08:00
@zjsxwc hhhhhhh
azuginnen
2019-09-07 10:24:18 +08:00
做一个小结,一个简单的做法是,启动程序后,分别创建一个进程池(进程数小于等于可用核数)、线程池和 ioloop,ioloop 负责调度一切的协程,遇到阻塞的调用时,I/O 型的扔进线程池,CPU 型的扔进进程池,这样代码逻辑简单,还能尽可能的利用机器性能。
Marinej
2019-09-07 10:37:06 +08:00
哇,好文终极感谢
deepreader
2019-09-07 10:47:12 +08:00
@iPhoneXI 在 Instagram Django 只算是产品后端。news feed ranking, ads ranking, friends ranking 全靠 C++。
poplar50
2019-09-07 11:04:30 +08:00
写的真的很不错。
iPhoneXI
2019-09-07 11:38:47 +08:00
@deepreader Python 做产品后端就够了,其他也不合适
so1n
2019-09-07 11:51:56 +08:00
@watsy0007 fastapi 用的怎么样?只用过 startless
blless
2019-09-07 12:37:40 +08:00
python 不慢谁还慢?主流就这么几种语言,最讨厌那种所谓大佬一上来就给新人灌输什么 py
够用了,是程序员自己能力不行的论调。你们觉得不慢那是对语言特性都摸透了,热点,痛点下意识就可以绕开。
这语言现在 curd 只能说勉强够用,随便来点复杂的,计算多一点的,要不稍微并发高一点的都要花费额外时间精力。我当时测试 pypy+gunicorn+flask+gevent 忙活优化好几天,最后算起来不如我从头学 go 重写来得划算…而且原来抖动延迟直接成一条直线,体验翻倍,这差距已经海了去了…
ClericPy
2019-09-07 12:40:13 +08:00
@azuginnen fastapi 底层的 starlette 有大组织背书, 我很喜欢, 比某些"大神"的 responder 阉割版好用多了, 但是 fastapi 到底比 starlette 好在哪, 没仔细看底层代码, 当时看了各种 Benchmark 对比里, fastapi 有的快有的慢, 快也不比 starlette 快出个质的差距
至于 Sanic, 已经很多人吐槽完了就扔掉了, 实在是坑多, 现在就算填上了也不想用
japronto 实在不敢上生产环境
falcon 看起来也很快
vibora 呼声很高, 现在也不清楚什么个情况了

其中一个 Benchmark 网站
https://github.com/the-benchmarker/web-frameworks
NeinChn
2019-09-07 12:48:18 +08:00
蛤蛤蛤
"你现在应该可以比较轻松的实现达到 1k QPS 的服务,在白天十小时里可以处理超过一亿请求,费用依然仅 20 元 /天。你还有什么借口说是因为 Python 慢呢?"
这连什么叫慢都不懂啊....
吞吐量和时延是两个不一样的事情
现在服务要求超时就只有 300ms
Python 裸写能不能在当前业务场景里支持这个时延,这叫快 /慢
然而显然事实是由于 Python 太慢,不得不在部分 CPU 密集型操作上用 C/C++处理一下,几个语言混编一下
GeruzoniAnsasu
2019-09-07 13:10:06 +08:00
都快 2020 了还有人觉得 python “不慢,性能够用了”
行吧,写 curd 的 web 应用有很多的分布式方案,1kqps 的 web server 横向扩展一下最后也能堆出够用的性能

除此之外呢?加点计算呢?


python 光是写个 http 发包压测就能费劲巴力死活跑不满带宽,换 golang 几乎一样的写法轻松打满 1G,这天花板低得一般路过都能看得见,有啥好头铁的嘛,我又不是那种要去顶破天花板的专家,我费这个力干啥,不如换语言
iceheart
2019-09-07 13:27:50 +08:00
不太会算数,1k QPS 十个小时是如何跑出一亿请求的
a852695
2019-09-07 13:44:52 +08:00
@zjsxwc 晕 还 PHP 你是停留在什么年代?

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

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

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

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

© 2021 V2EX