V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
azev
V2EX  ›  问与答

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

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

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

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

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

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

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

    php 要看你用什么框架,这个内存占用受框架影响比较大。
    sagaxu
        26
    sagaxu   72 天前 via Android
    springboot 起码需要 0.1G 内存,稍微带点逻辑 0.2G 起步,要跑的欢快至少要 0.5G
    cmdOptionKana
        27
    cmdOptionKana   72 天前   ❤️ 2
    看了一下我服务器上正在跑的四个用 Go 写的小网站(没有访问量的自用网站),分别占用 0.6M, 0.8M, 1.0M, 4.2M
    darktutu
        28
    darktutu   72 天前
    GiantHard
        29
    GiantHard   72 天前 via Android
    省内存这点首先排除 Spring Boot,我个人偏好静态类型,所以接着排除 flask 跟 PHP,建议 Go 跟 ASP.NET Core 二选一
    beyondex
        30
    beyondex   72 天前
    dotnet core 用 ASP.NET Core 框架开发 Web 不加入其它大型框架的话,几十 MB 内存吧。
    Rwing
        31
    Rwing   72 天前   ❤️ 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   72 天前
    技术上基本上是个无底洞,你可以不断优化,就看你觉得值得投入多少。

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

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

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

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

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

    所以,你应该选 go
    lbp0200
        45
    lbp0200   72 天前
    节省内存考虑
    golang>dotnet core> flask> springboot> php

    现实是,根本没有访问量,所以你这个伪需求,用啥都一样
    lbp0200
        46
    lbp0200   72 天前
    @ghjacky PostgreSQL 更省内存
    xionger
        47
    xionger   72 天前
    flask
    debuggerx
        48
    debuggerx   72 天前
    go+标准库
    Jackeriss
        49
    Jackeriss   72 天前 via iPhone
    首先排除 spring boot 。。。时候剩下的熟悉哪个用哪个
    aaronlam
        50
    aaronlam   72 天前
    推荐 Nodejs
    reeco
        51
    reeco   72 天前
    springboot + openj9 内存占用也很省的,放弃 spring boot 用 vertx 之类的,能更省一点
    thet
        52
    thet   72 天前 via iPhone
    肯定 go 呀,开发快 特别省内存,用标准库开发就行,性能又好
    MintZX
        53
    MintZX   72 天前 via iPhone
    小项目当然是 ruby on rails 啊,按天算的开发周期
    lancelock
        54
    lancelock   72 天前 via iPhone
    java 就可以,我昨天试了 quarkus + graalvm 本地编译,快的飞起
    还有.net core 已经没了.net 5 昨晚刚发布,可以试试,开发体验好
    go 我写过感觉不怎么顺手,可能是不太熟悉吧
    96412hj
        55
    96412hj   72 天前
    ```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   72 天前
    当然是 php 咯,go 你修改了还要编译下。
    yincrow
        57
    yincrow   72 天前
    纯 HTML 速度快又省内存
    mauve
        58
    mauve   72 天前
    JAMStack 最省内存,性能基本不存在上限,因为不相关,访问速度和 CDN 的速度一样
    mingsz
        59
    mingsz   72 天前   ❤️ 1
    node 或 go
    JJstyle
        60
    JJstyle   71 天前
    ```php
    <?php

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

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

    ```

    $ php -S 0.0.0.0:80

    论快,我大 PHP 服过谁?
    xxxy
        61
    xxxy   71 天前
    nodejs 吧,非常省事
    acmore
        62
    acmore   71 天前
    开发效率上的话,PHP, Flask / FastAPI, Express, Spring Boot CLI 等都可以几乎以单文件进行编写和部署,要找一个最快的方案的话,如 60 楼所说,PHP 最快。
    whusnoopy
        63
    whusnoopy   71 天前
    你会啥选啥,如果需要多花你三五天去调试搭环境啥的,这个钱省出来直接去买个高配点的云主机不好么,非得去抠这一点,一个靠谱点的研发岗,一周的薪资开销还不够买个好点的云主机?能用的久再考虑优化吧,也许没多久这个应用就下掉不要了
    cxsz
        64
    cxsz   71 天前
    fastapi 挺好用
    关于   ·   帮助文档   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   4894 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 03:15 · PVG 11:15 · LAX 19:15 · JFK 22:15
    ♥ Do have faith in what you're doing.