V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
yuan321
V2EX  ›  Django

django 的同步机制有性能瓶颈为什么还是有很多人用?

  •  
  •   yuan321 · 107 天前 · 3437 次点击
    这是一个创建于 107 天前的主题,其中的信息可能已经有所发展或是发生改变。

    有那么多高性能的 web 框架,为啥还是有不少人选择 django

    46 条回复    2024-02-03 12:09:30 +08:00
    GTim
        1
    GTim  
       107 天前
    因为 99%的网站流量之低,根本轮不到拼性能的时候
    xuqiccr
        2
    xuqiccr  
       107 天前
    我都用 Django 了我还在乎性能吗(不是),我都是用来做内部各种运维平台的,根本无所谓性能
    weaving
        3
    weaving  
       107 天前
    选择 Django 是因为能快速迭代我的需求,至于性能嘛,等流量来了再解决,实际上多数情况是没流量,我就要破产了😋
    echo1937
        4
    echo1937  
       107 天前   ❤️ 1
    我们买车的时候也不是光盯着动力性能这一项啊。
    superrichman
        5
    superrichman  
       107 天前
    高性能 ❎
    性能过剩 ✅
    ljsh093
        6
    ljsh093  
       107 天前
    业务量没大到框架性能瓶颈、且开发真的很快
    cyrivlclth
        7
    cyrivlclth  
       107 天前
    做项目不是不计成本的,日活<2 ,你性能支持千万并发又咋样,该凉还是凉。早出活,早上线,跑出利润再说。有钱了,什么性能差之类的,再找人优化不就行了。
    amon
        8
    amon  
       107 天前   ❤️ 1
    想明白这个问题,你就跳出了一个技术思维圈。
    ytmsdy
        9
    ytmsdy  
       107 天前
    99%的项目都触及不到框架的性能瓶颈,就算达到了瓶颈也有很多其他手段来解决,如果其他手段上了,还继续触碰到瓶颈,那就不是单个程序员能搞定的事情了。
    Django 这玩意儿主要是快,很多东西开箱即用,简单手快的,我一个小时就能高出一个用户登录,用户信息获取 API 。
    darkengine
        10
    darkengine  
       107 天前   ❤️ 1
    因为这是个工程问题
    coolair
        11
    coolair  
       107 天前
    python 的其他 web 框架,很多第三方扩展都停止维护了,目前就 Django 的生态欣欣向荣。
    echo0x000001
        12
    echo0x000001  
       107 天前
    热知识,django github 75k star ,spring boot 71k star.
    Vegetable
        13
    Vegetable  
       107 天前   ❤️ 4
    我司的主力服务使用的是 flask 古早版本,日活三万左右。使用普通 ECS 部署,我看了一下最近 24 小时的请求数量是 4 百万次,峰值很难达到 100req/s 。
    这个水平的服务我们的 flask 这一层需要 100 个 worker ,分布在 4 ~ 5 个 ECS 上。切换成任何一个高性能的 web 框架,也仍然要保留至少两个实例。当前的服务器成本还比不上一个新手运维的工资,切换成别的框架,能节省的成本更是有限。
    作为一个运行了多年的服务,让人干点正事儿,在熟悉的体系内工作,可能更划算
    june4
        14
    june4  
       107 天前
    除非请求中间要同步调用外网非常慢的异步查询,否则同步和异步性能并没有区别
    Morriaty
        15
    Morriaty  
       107 天前
    @Vegetable 没玩过生产环境的 flask ,请问这里的 100 个 worker 是相当于 100 个 process 吗?相当于 1req/s/pro 这也太跌破我想象了🤣
    brom111
        16
    brom111  
       107 天前
    不是性能最强就是最好的。

    盈利永远无限的高于技术
    gaogang
        17
    gaogang  
       107 天前
    大部分项目活不到拼性能的时候
    而且 django 也有方案可以实现异步
    Vegetable
        18
    Vegetable  
       107 天前
    @Morriaty 我们确实是一个 worker 占用一个 process ,100 个 woker 就相当于 100 个进程。这个数量是留了不少冗余空间的,业务低峰时段是比较闲的
    locoz
        19
    locoz  
       107 天前
    没有那么多需要高性能的业务,绝大多数业务要的只是有个程序去辅助管理而已,最多也就把后台的自动化部分做得高性能点,面向用户的服务部分差不多就行了,哪个熟悉、方便就用哪个。

    而且现在的 CPU 和内存都极其便宜,就算是用户量突然暴涨,靠硬堆进程数量也完全可以解决问题,大不了成本快超过性价比极限的时候再开始针对特定模块做重构都来得及。
    justplaymore
        20
    justplaymore  
       107 天前
    小电驴性能不如 F1 ,为什么还有这么多人用?

    在能够满足需求的前提下,选择成本最小的,这就是权衡的核心思路。
    salmon5
        21
    salmon5  
       107 天前
    django 的项目用户最多几千,并发几个
    salmon5
        22
    salmon5  
       107 天前
    自行车载人这么少,为什么都不用大巴车?
    tomczhen
        23
    tomczhen  
       107 天前 via Android
    先想想跑满“高性能”的带宽流量费用能不能负担得起,再来谈框架性能瓶颈吧。
    Hider5
        24
    Hider5  
       107 天前
    哪有那么多高性能场景,我参与了好几轮大促和全链路压测,99.99%的接口 qps 都不上 100
    julyclyde
        25
    julyclyde  
       107 天前
    是指哪个同步啊?
    wanguorui123
        26
    wanguorui123  
       107 天前
    大部分情况下瓶颈在数据库。
    Philippa
        27
    Philippa  
       107 天前
    Django 主要是小公司在用,快速迭代是小公司关注的点,性能只要满足要求即可。有个人开创业公司用 Rust ,后面他写了个文章说以后创业再也不用 Rust 了,虽然安全性能好,但是用别的迭代会更快。

    更何况架构合理,可以大规模横向扩展。那时候瓶颈就去了 Database 去了。如果是微服务每个服务配一个 Database ,那性能更不成问题了(或许用 flask 和 fastapi 更合适)。只有到了 Django 无法满足的场景,比如要求低延迟,才有替换 Django 的需要。
    lambdaq
        28
    lambdaq  
       107 天前
    只有我一个人不知道什么是「同步机制性能瓶颈」吗?

    说的是没用 asyncio ?别人好像也支持 https://docs.djangoproject.com/en/5.0/howto/deployment/asgi/ 的呀?
    ho121
        29
    ho121  
       107 天前
    不出意外的话,瓶颈主要在数据库
    feiniu
        30
    feiniu  
       107 天前
    我也感觉大部分瓶颈是在数据库
    vicalloy
        31
    vicalloy  
       107 天前
    很多时候性能瓶颈都不卡在 web 框架,而且对于大多情况下也用不到异步。异步框架最大的特点是跑分好看。
    Instagram 后端用的是 Django ,包括后来 Instagram 团队出的 Threads ( Facebook 版的 Twitter )也用了 Django 。
    Instagram 用的 Django 自然是魔改过的,但大概率主体还是同步模式。
    最后,如果你能触及 Django 的性能瓶颈,那已经很成功了。大多项目在遇到瓶颈前就挂了。

    https://news.ycombinator.com/item?id=36612835
    qsnow6
        32
    qsnow6  
       107 天前
    CPU 99%的情况下是闲置的
    lolizeppelin
        33
    lolizeppelin  
       107 天前
    笑死了...都在用 python 了还在纠结性能问题....
    zhangshine
        34
    zhangshine  
       107 天前
    绝大多数网站用一个普通的$5 美元的 vps 都能支撑,根本没有那么多流量,也用不到那么高的性能。不过我现在不用 django ,单纯因为不想写 python 了
    retrocode
        35
    retrocode  
       107 天前
    话说你们都是怎么处理 django 的部署问题的, 打 docker? 我比较烦源码部署, 或者 webhook 拉 git, 一堆散碎文件.
    JosephYin01
        36
    JosephYin01  
       107 天前
    升級下 server 性能比多招幾個 java 程序猿便宜多了
    locoz
        37
    locoz  
       107 天前
    @retrocode #34 gitlab 自动构建成容器镜像,再 flux 自动部署到 k8s
    hideon
        38
    hideon  
       107 天前
    @JosephYin01 nonono ,java 程序员才是最便宜的,思路打开,把 python 全炒了,换 spring
    gokiller
        39
    gokiller  
       107 天前
    所以面试的时候问那么多高并发的问题就是扯淡的。

    我一般关心谁最快把稳定的系统部署上线。
    lyhapple
        40
    lyhapple  
       107 天前
    @gokiller 基于“最快”两个字,所以我选择了 go
    hackerfans
        41
    hackerfans  
       107 天前
    1 核 2G 1MB 服务器表示 django 性能够用了
    neoblackcap
        42
    neoblackcap  
       107 天前
    性能是不是真的低,应该用数据说话。你要求性能应该达到 1000qps ,但是实际上你们的生产环境可能就 10qps ,那不是扯嘛。
    而且 web 端那么快,你数据库顶得住?
    DeWjjj
        43
    DeWjjj  
       107 天前 via Android
    Python 不行的可以调用 cpp 代码。
    abersheeran
        44
    abersheeran  
       107 天前
    什么同步性能瓶颈? Django 慢也是相对慢,把 flask 或者 fastapi 功能上满,也不会比 Django 快多少。CPython 性能就在这儿摆着。谁说能比肩 golang 那都是营销手段,吹牛逼的。
    dayeye2006199
        45
    dayeye2006199  
       106 天前 via Android
    因为很多时候耽误赚钱的是程序员的写代码速度,不是代码跑的速度
    julyclyde
        46
    julyclyde  
       106 天前
    @hackerfans 1MB 有点夸张吧
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1055 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 103ms · UTC 23:11 · PVG 07:11 · LAX 16:11 · JFK 19:11
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.