5

想写个高性能版 Nextcloud 后端,用 Rust 还是 Java 好?

 2 years ago
source link: https://www.v2ex.com/t/802154
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
想写个高性能版 Nextcloud 后端,用 Rust 还是 Java 好?

V2EX  ›  Java

想写个高性能版 Nextcloud 后端,用 Rust 还是 Java 好?

  theklf4 · 18 小时 58 分钟前 · 3269 次点击

不考虑 Go,非常不喜欢 Go 这个语言。 Rust 部署方便,社区支持好,但貌似还不是成熟,很多包连 1.0 都没发出来。 Java 目前还是后端第一语言,比 Rust 成熟不少,但部署不是很方便(虽然打 Docker 镜像都差不多),资源占用也比 Rust 高。

45 条回复    2021-09-16 18:47:00 +08:00

ipwx

ipwx   18 小时 57 分钟前

用 Java 你就很难部署到比如低内存的 Nas 上了。。。

agagega

agagega   18 小时 47 分钟前

自己写着玩的话就 Rust 呗,有时候踩坑也是种乐趣。不过听说 Rust 的 async/await 这块还没定稿?不应该哇。

wangxn

wangxn   18 小时 16 分钟前

Rust 并不适合来做后端吧,它的优势在后端开发上几乎没有任何应用场景。用 Rust 写后端大致等同于用 C/C++ 写后端,你可以想象这个流行度。
现在 Rust 被用得最多的地方是重写各种命令行工具,都需要大量时间来慢慢磨细节、优化性能。
基本上动态语言凭借专门优化了的 IO 处理和 JIT 在评测上就能打平原生语言,实际应用不好说。

xgfan

xgfan   18 小时 14 分钟前   ❤️ 18

你排除了最合适的答案……

anyxchachapoly

anyxchachapoly   17 小时 56 分钟前   ❤️ 3

这帖子让我产生难得一见的好奇心,看了下楼主过往发帖

1. 楼主 59 天前发布的『第一次用 go 写爬虫那篇』,包含他人回覆概览了下,恍然大悟,原来是非常多基础不懂所以不喜欢。

2. Java...后端第一,比 Rust 成熟不少,资源占用比 Rust 高,连个基本的 engineering 选择 tech stack 时所需要拿捏的平衡点到底是哪些都不理解。

加油,我非常看好楼主写出一个所谓高性能的 nextcloud 『后端』

xupefei

xupefei   17 小时 36 分钟前 via iPhone

楼主一个人搞?这工程量挺大的啊。
owncloud 有一个团队在用 go 重写服务器端,楼主可以加入一下

icy37785

icy37785   17 小时 20 分钟前 via iPhone

都发在 java 分区了那肯定就是已经决定 java 了吧。
有一说一 go 是最合适的。

Mohanson

Mohanson   17 小时 12 分钟前 via Android   ❤️ 1

对裹脚布过敏

Hanggi

Hanggi   12 小时 32 分钟前   ❤️ 2

一个成熟的开发者不会用非常不喜欢一个语言这种无厘头的理由做技术选型。

redr41n

redr41n   10 小时 5 分钟前   ❤️ 1

刚想来回答 golang,结果看到楼主第一句话

quan01994

quan01994   10 小时 0 分钟前

为什么不用 dotnet 呢 。。

MeatIndustry

MeatIndustry   9 小时 45 分钟前

为什么不考虑 Kotlin 呢,都考虑到 Java 了

seven123

seven123   9 小时 43 分钟前

现在这个情况,首选就是 golang,又要占用小,性能还要不错,还得方便部署

2i2Re2PLMaDnghL

2i2Re2PLMaDnghL   9 小时 40 分钟前

我不知道你怎么想的。
nc 21 已经有 rust 写的高性能文件后端了。
oc 则是挑选了 go 的样子
看来是 PHP 积重难返
# docker 不适合运行时带虚拟机语言

a22271001

a22271001   9 小时 39 分钟前

java 不便于在树莓派 3 之类的小内存设备上部署,用 Go 挺合适的
顺便吐槽一句 nextcloud 是真的卡

witcherhope

witcherhope   9 小时 31 分钟前

GraalVM 试试,可以减少 Java 内存占用

chiuan

chiuan   9 小时 22 分钟前

golang 最舒服最强目前。

x940727

x940727   9 小时 20 分钟前

GraalVM 试试呗,Native 无论是启动速度还是内存占用已经好很多了,优化优化估计能和 Go 掰掰手腕。

byte10

byte10   9 小时 11 分钟前

@a22271001 nextcloud 为啥会那么卡,我也是郁闷。这么简单的一个网盘不至于会卡吧。。
@icy37785 go 确实是比较合适,小服务器也可以运行起来,要知道很多小玩具都是 1-2g 内存的。

go 语言目前比较合适的。话说 nodejs 能搞吗,python 呢?按道理这是一个非常简单的服务啊,业务也简单。

xieren58

xieren58   9 小时 3 分钟前

绝对 rust

seakingii

seakingii   8 小时 35 分钟前

网络服务,GOLANG 首选

Ayanokouji

Ayanokouji   8 小时 34 分钟前

java + graalvm native ?

systemcall

systemcall   8 小时 33 分钟前

用 C#试试吧
现在的生态也不错了。而且性能也有保障,低内存设备其实也还好,部署非常方便

Wincer

Wincer   7 小时 43 分钟前   ❤️ 4

问得出这样问题的人,我不觉得楼主能写出来高性能的 NextCloud 客户端~当然,欢迎楼主打我脸

a22271001

a22271001   7 小时 37 分钟前

@byte10 网上一堆参数优化文章杂七杂八的,我看了下干脆放弃了。。。

mmdsun

mmdsun   6 小时 39 分钟前 via Android

Java 云原生还是不行至少等 spring 6 出来,spring native GraalVM 还有很多小 bug.

不想用 go 可以考虑 .NET core,C#。

https://dotnet.microsoft.com

mringg

mringg   6 小时 0 分钟前

个人感觉,还是用自己比较熟悉的语言写起来,之后想改成其他语言再说就好。

zysuper

zysuper   5 小时 36 分钟前

个人喜欢不喜欢重要吗? 能方便的干活赚钱不香吗?

villivateur

villivateur   5 小时 30 分钟前 via Android

你确定你要重写 nextcloud ?
这个工作量可不是几天几个月能搞定的

DsuineGP

DsuineGP   4 小时 22 分钟前

@agagega async/await 我上生产环境都一年了。
但是有一说一,只是用来写 web 的话真不如 spring 一把梭
用了 Rust 各种轮子都得自己造,开源的轮子要么没有要么不圆

devcat9

devcat9   4 小时 19 分钟前

@DsuineGP Rust 范型好用吗?除了轮子的话,写业务逻辑还有什么坑?

angryfish

angryfish   4 小时 12 分钟前

为啥 不用 php 写呢,狗头

DsuineGP

DsuineGP   3 小时 37 分钟前   ❤️ 1

@devcat9 比较大的坑是要避免在异步运行时( tokio )里面运行另一个异步运行时( tokio )
比如一开始是在异步函数内部调用一个同步函数,之后需求改了你想在同步函数内部再调了另一个异步函数(比如网络请求之类的)就很困难
范型的话,只要不涉及到生命周期参数就还挺好理解的,但是因为不像 java 有类继承,Rust 要想代码优雅至少得学会声明宏和派生宏的使用

allanpk716

allanpk716   3 小时 33 分钟前 via iPhone

楼主的意思是 rust 比 java 容易部署吗? doge

NjcyNzMzNDQ3

NjcyNzMzNDQ3   3 小时 31 分钟前

nextcloud 卡是因为用户关闭窗口,后台程序还在读取文件,读到结束才关闭。

借楼推荐下 php 版本的 filerun 自用啥问题都没有。
https://filerun.com/

PDX

PDX   3 小时 29 分钟前 via iPhone

用 quarkus 写,然后编译成 native

devcat9

devcat9   3 小时 9 分钟前

@DsuineGP 感谢!写业务代码的效率看起来还行?

宏会不会过多影响可读性?

wph95

wph95   2 小时 57 分钟前

> Java 目前还是后端第一语言,比 Rust 成熟不少,但部署不是很方便(虽然打 Docker 镜像都差不多),资源占用也比 Rust 高。

graalvm 了解一下 quarkus 了解一下

littlewing

littlewing   2 小时 54 分钟前

earneet

earneet   2 小时 38 分钟前 via iPhone

当然是 java 了,虚拟机得天下,裸语言实现虚拟机呀!

gstqc

gstqc   2 小时 25 分钟前

这种重 IO 的场景,换个语言有效果吗

sky96111

sky96111   2 小时 23 分钟前 via Android

用 Rust 重写的话…全人类感谢你.jpg

mxT52CRuqR6o5

mxT52CRuqR6o5   37 分钟前 via Android

@gstqc +1,顶多省点内存

watcher

watcher   34 分钟前

用 php 啊 大哥

关于   ·   帮助文档   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2545 人在线   最高记录 5497   ·  

创意工作者们的社区

World is powered by solitude

VERSION: 3.9.8.5 · 21ms · UTC 11:21 · PVG 19:21 · LAX 04:21 · JFK 07:21
♥ Do have faith in what you're doing.


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK