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

2020-11-10 13:47:28 +08:00
 azev

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

6446 次点击
所在节点    问与答
64 条回复
ShuangChenyue
2020-11-10 15:27:52 +08:00
go 吧
mmdsun
2020-11-10 15:38:59 +08:00
这几个框架 springboot 最好用。但 Java 资源占用太大了。

推荐 dotnet core api 吧,和 springboot 差不多。但占用小很多。
crclz
2020-11-10 15:48:01 +08:00
.Net core
p1094358629
2020-11-10 15:50:40 +08:00
jfinal
cmdOptionKana
2020-11-10 15:54:26 +08:00
不是太懂 dotnet core, 印象中好像和 Java 一样需要一个类似于 jvm 的东西吧?如果是的话也不省内存。

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

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

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

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

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

以上都是针对有动态业务逻辑的 Web 服务,如果你只是 host 几个静态文件的话,Nginx 各方面都很不错。
zoharSoul
2020-11-10 16:43:11 +08:00
@cmdOptionKana #27 这也太小了吧
什么框架啊?
jj123456
2020-11-10 18:03:08 +08:00
多小的 web 应用?
brokenQ
2020-11-10 18:18:49 +08:00
litespeed
namelosw
2020-11-10 18:41:39 +08:00
Rust
Cbdy
2020-11-10 18:42:36 +08:00
试试 Node.js
locoz
2020-11-10 18:46:32 +08:00
fastapi 确实挺爽的,但是省内存的话还是用 go 的吧,知名的几个都可以
cmdOptionKana
2020-11-10 18:51:27 +08:00
@zoharSoul Go 做小网站用不用框架都行,标准库基本够用了,我就用标准库。

其中一个项目是用来临时保存文字备忘、临时保存文件的网站,有点类似于 firefox send, 但做成了单用户系统(而不是公用型),同时提供了简单的命令行功能(可以从手机或电脑发送文本消息,然后在服务器用命令行接收),这几天打算整理一下就发布。
ghjacky
2020-11-10 18:57:21 +08:00
自己的 vps 512m 内存,go+vue 做了个博客,跑有 nginx 、ss 、mysql,其他都是系统服务,内存使用 190m

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

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

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

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

© 2021 V2EX