需要搭个小的 web 应用,什么技术栈做出来速度快又省内存? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
azev
V2EX    问与答

需要搭个小的 web 应用,什么技术栈做出来速度快又省内存?

  •  1
    &bsp;
  •   azev 2020 年 11 月 10 日 7944 次点击
    这是一个创建于 1956 天前的主题,其中的信息可能已经有所发展或是发生改变。

    客户的云主机配置不高 已经搭了几个服务了
    springboot,flask,php,dotnet core 。选哪个呢?

    64 条回复    2020-11-11 17:44:29 +08:00
    tanjnr
        1
    tanjnr  
       2020 年 11 月 10 日 via iPhone
    Php,我的单核 1G,部署完应用还剩 300M+内存
    azev
        2
    azev  
    OP
       2020 年 11 月 10 日
    @tanjnr 多谢 用什么框架了吗?
    putaozhenhaochi
        3
    putaozhenhaochi  
       2020 年 11 月 10 日   6
    dotnet core
    Rekkles
        4
    Rekkles  
       2020 年 11 月 10 日
    PHP 呗 一天环境一周开发半天上线 内存 1G 够跑
    HuHui
        5
    HuHui  
       2020 年 11 月 10 日
    go gin
    azev
        6
    azev  
    OP
       2020 年 11 月 10 日
    @putaozhenhaochi 多谢 这个有点意外 是自身经验吗?
    xman99
        7
    xman99  
       2020 年 11 月 10 日
    小项目 php 还不错
    renmu123
        8
    renmu123  
       2020 年 11 月 10 日 via Android   1
    看你多小,我推荐 fastapi,贼快贼爽
    icyalala
        9
    icyalala  
       2020 年 11 月 10 日
    速度快省内存当然是 go
    wuzhanggui
        10
    wuzhanggui  
       2020 年 11 月 10 日
    我也推荐 fastapi,我的小站全是用它写的,写小项目超快
    JQD6r41PkI4o2mEz
        11
    JQD6r41PkI4o2mEz  
       2020 年 11 月 10 日
    c,内存可以小于 1M
    tanjnr
        12
    tanjnr  
       2020 年 11 月 10 日 via iPhone
    这跟框架关系不大,我用的自研框架。
    ashong
        13
    ashong  
       2020 年 11 月 10 日 via iPhone
    civet
    rogwan
        14
    rogwan  
       2020 年 11 月 10 日 via Android
    @wuzhanggui 你用 fastapi 前端搭什么框架好?
    lixuda
        span class="no">15
    lixuda  
       2020 年 11 月 10 日
    flask
    tanjnr
        16
    tanjnr  
       2020 年 11 月 10 日 via iPhone
    @azev 楼上推荐的 fastapi 也不错的,你要是全新开发,用这个 fastapi 挺好。我用的自研框架是写了很久的,一套代码比较成熟,功能比较完整的 mvc 库。对我来说,在此基础上开发效率较高。
    wuzhanggui
        17
    wuzhanggui  
       2020 年 11 月 10 日   1
    @rogwan 我用的 vue,好用呐
    Kilerd
        18
    Kilerd  
       2020 年 11 月 10 日
    rust 啊

    做工慢,运行速度快,占用内存还少
    lithbitren
        19
    lithbitren  
       2020 年 11 月 10 日   1
    rust 用的好的话各项指标都会超过 go,但主要是碰到很多问题根本找不到答案,就算是英文资料也不够多,不管是 actix/hyper/warp,很多需要小小提示一下就能解决的简单需求也不一定找得到结果,底层很多东西更是搞不清楚原理,能编译通过就不错了。不像 java/python/go 无论是肤浅的问题还是有深度的问题,基本都能找到解决方案,所以个人还是推荐 fastapi 和 gin,不过也看多小的应用了,实际上就算是 flask/django 面对大多数小应用也是没问题的,java 熟的也可以直接上 springboot,开发速度也很快,其他没用过不太懂。
    3dwelcome
        20
    3dwelcome  
       2020 年 11 月 10 日 via Android
    怎么没人说用 nodejs,低配置单核首选。
    ShuangChenyue
        21
    ShuangChenyue  
       2020 年 11 月 10 日
    go 吧
    mmdsun
        22
    mmdsun  
       2020 年 11 月 10 日 via Android
    这几个框架 springboot 最好用。但 Java 资源占用太大了。

    推荐 dotnet core api 吧,和 springboot 差不多。但占用小很多。
    crclz
        23
    crclz  
       2020 年 11 月 10 日
    .Net core
    p1094358629
        24
    p1094358629  
       2020 年 11 月 10 日
    jfinal
    cmdOptionKana
        25
    cmdOptionKana  
       2020 年 11 月 10 日
    不是太懂 dotnet core, 印象中好像和 Java 一样需要一个类似于 jvm 的东西吧?如果是的话也不省内存。

    然后 flash(python) 如果不做优化,占用内存应该比 Go 大。

    php 要看你用什么框架,这个内存占用受框架影响比较大。
    sagaxu
        26
    sagaxu  
       2020 年 11 月 10 日 via Android
    springboot 起码需要 0.1G 内存,稍微带点逻辑 0.2G 起步,要跑的欢快至少要 0.5G
    cmdOptionKana
        27
    cmdOptionKana  
       2020 年 11 月 10 日   2
    看了一下我服务器上正在跑的四个用 Go 写的小网站(没有访问量的自用网站),分别占用 0.6M, 0.8M, 1.0M, 4.2M
    darktutu
        28
    darktutu  
       2020 年 11 月 10 日
    t/703698 可以参考下
    GiantHard
        29
    GiantHard  
       2020 年 11 月 10 日 via Android
    省内存这点首先排除 Spring Boot,我个人偏好静态类型,所以接着排除 flask 跟 PHP,建议 Go 跟 ASP.NET Core 二选一
    beyondex
        30
    beyondex  
       2020 年 11 月 10 日
    dotnet core 用 ASP.NET Core 框架开发 Web 不加入其它大型框架的话,几十 MB 内存吧。
    Rwing
        31
    Rwing  
       2020 年 11 月 10 日   2
    假定你这个应用只是输出一个 helloworld
    内存占用从小到大:go < .net core ≈ flask < spring
    不知道你说的速度是指什么?
    如果是运行性能,从快到慢:.net core ≈ go < spring < flask
    如果是开发效率,从快到慢:.net core ≈ spring < flask < go
    综上所述,考虑. net core 吧

    部分数据参考 https://www.techempower.com/benchmarks/#section=data-r19&hw=ph&test=plaintext
    php 个体间差异太大不纳入统计
    libook
        32
    libook  
       2020 年 11 月 10 日
    技术上基本上是个无底洞,你可以不断优化,就看你觉得值得投入多少。

    省内存,那么主流的有垃圾回收机制的语言就不占优势了;要快的话,通常编译成机器码的会比虚拟机或解释器型的语言好一些,当然也有例外。

    但看省内存和速度快这两个方面的话 Rust 语言写的程序可能会比较符合要求,当然 C++也可以,就是写出好程序比较考验功力。

    不过个人经验看来即便云主机配置再低,跑几个小服务用啥技术栈也都没啥大问题。

    以上都是针对有动态业务逻辑的 Web 服务,如果你只是 host 几个静态文件的话,Nginx 各方面都很不错。
    zoharSoul
        33
    zoharSoul  
       2020 年 11 月 10 日
    @cmdOptionKana #27 这也太小了吧
    什么框架啊?
    jj123456
        34
    jj123456  
       2020 年 11 月 10 日
    多小的 web 应用?
    brokenQ
        35
    brokenQ  
       2020 年 11 月 10 日
    litespeed
    namelosw
        36
    namelosw  
       2020 年 11 月 10 日 via iPhone
    Rust
    Cbdy
        37
    Cbdy  
       2020 年 11 月 10 日 via Android
    试试 Node.js
    locoz
        38
    locoz  
       2020 年 11 月 10 日 via Android
    fastapi 确实挺爽的,但是省内存的话还是用 go 的吧,知名的几个都可以
    cmdOptionKana
        39
    cmdOptionKana  
       2020 年 11 月 10 日
    @zoharSoul Go 做小网站用不用框架都行,标准库基本够用了,我就用标准库。

    其中一个项目是用来临时保存文字备忘、临时保存文件的网站,有点类似于 firefox send, 但做成了单用户系统(而不是公用型),同时提供了简单的命令行功能(可以从手机或电脑发送文本消息,然后在服务器用命令行接收),这几天打算整理一下就发布。
    ghjacky
        40
    ghjacky  
       2020 年 11 月 10 日
    自己的 vps 512m 内存,go+vue 做了个博客,跑有 nginx 、ss 、mysql,其他都是系统服务,内存使用 190m
    Immortal
        41
    Immortal  
       2020 年 11 月 10 日
    @Rwing #31
    运行性能真的没排错么
    cocoabeans
        42
    cocoabeans  
       2020 年 11 月 10 日
    sanic
    ourslay
        43
    ourslay  
       2020 年 11 月 10 日 via iPhone
    quarkus native
    bugsnail
        44
    bugsnail  
       2020 年 11 月 10 日
    世界上 80%的网页都是 PHP 写的

    所以,你应该选 go
    lbp0200
        45
    lbp0200  
       2020 年 11 月 10 日
    节省内存考虑
    golang>dotnet core> flask> springboot> php

    现实是,根本没有访问量,所以你这个伪需求,用啥都一样
    lbp0200
        46
    lbp0200  
       2020 年 11 月 10 日
    @ghjacky PostgreSQL 更省内存
    xionger
        47
    xionger  
       2020 年 11 月 10 日
    flask
    debuggerx
        48
    debuggerx  
       2020 年 11 月 10 日
    go+标准库
    Jackeriss
        49
    Jackeriss  
       2020 年 11 月 10 日 via iPhone
    首先排除 spring boot 。。。时候剩下的熟悉哪个用哪个
    aaronlam
        50
    aaronlam  
       2020 年 11 月 10 日
    推荐 Nodejs
    reeco
        51
    reeco  
       2020 年 11 月 10 日
    springboot + openj9 内存占用也很省的,放弃 spring boot 用 vertx 之类的,能更省一点
    thet
        52
    thet  
       2020 年 11 月 11 日 via iPhone
    肯定 go 呀,开发快 特别省内存,用标准库开发就行,性能又好
    MintZX
        53
    MintZX  
       2020 年 11 月 11 日 via iPhone
    小项目当然是 ruby on rails 啊,按天算的开发周期
    lancelock
        54
    lancelock  
       2020 年 11 月 11 日 via iPhone
    java 就可以,我昨天试了 quarkus + graalvm 本地编译,快的飞起
    还有.net core 已经没了.net 5 昨晚刚发布,可以试试,开发体验好
    go 我写过感觉不怎么顺手,可能是不太熟悉吧
    96412hj
        55
    96412hj  
       2020 年 11 月 11 日
    ```go
    package main

    import "github.com/gin-gonic/gin"

    func main() {
    r := gin.Default()
    r.GET("/ping", func(c *gin.Context) {
    c.JSON(200, gin.H{
    "message": "pong",
    })
    })
    r.Run() // listen and serve on 0.0.0.0:8080 (for windows "localhost:8080")
    }
    ```
    zarte
        56
    zarte  
       2020 年 11 月 11 日
    当然是 php 咯,go 你修改了还要编译下。
    yincrow
        57
    yincrow  
       2020 年 11 月 11 日
    纯 HTML 速度快又省内存
    mauve
        58
    mauve  
    PRO
       2020 年 11 月 11 日
    JAMStack 最省内存,性能基本不存在上限,因为不相关,访问速度和 CDN 的速度一样
    mingsz
        59
    mingsz  
       2020 年 11 月 11 日   1
    node 或 go
    JJstyle
        60
    JJstyle  
       2020 年 11 月 11 日
    ```php
    <?php

    header('Content-type: application/json');

    echo json_encode(['message' => 'pong']);

    ```

    $ php -S 0.0.0.0:80

    论快,我大 PHP 服过谁?
    xxxy
        61
    xxxy  
       2020 年 11 月 11 日
    nodejs 吧,非常省事
    acmore
        62
    acmore  
       2020 年 11 月 11 日
    开发效率上的话,PHP, Flask / FastAPI, Express, Spring Boot CLI 等都可以几乎以单文件进行编写和部署,要找一个最快的方案的话,如 60 楼所说,PHP 最快。
    whusnoopy
        63
    whusnoopy  
       2020 年 11 月 11 日
    你会啥选啥,如果需要多花你三五天去调试搭环境啥的,这个钱省出来直接去买个高配点的云主机不好么,非得去抠这一点,一个靠谱点的研发岗,一周的薪资开销还不够买个好点的云主机?能用的久再考虑优化吧,也许没多久这个应用就下掉不要了
    cxsz
        64
    cxsz  
       2020 年 11 月 11 日
    fastapi 挺好用
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2856 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 57ms UTC 04:06 PVG 12:06 LAX 21:06 JFK 00:06
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86