水木社区手机版
首页
|版面-编程技术(Programming)|
新版wap站已上线
返回
下页
|
尾页
|
1/2
|
转到
主题:Why Discord is switching from Go to Rust
楼主
|
eGust
|
2020-02-05 07:17:07
|
只看此ID
语言坑:Why Discord is switching from Go to Rust
https://blog.discordapp.com/why-discord-is-switching-from-go-to-rust-a190bbca2b1f
太长不转了
tldr
由于一个很大的 LRU cache,golang 每两分钟 gc 导致延迟。用 rust + async 做了很基本的优化的版本,就全方位超过了仔细手动调整过的 go 版本
hacker news 和 reddit 上面已经战开了
https://news.ycombinator.com/item?id=22238335
https://www.reddit.com/r/programming/comments/eyuebc/why_discord_is_switching_from_go_to_rust/
https://www.reddit.com/r/rust/comments/eytyug/why_discord_is_switching_from_go_to_rust/
反方主要观点有:
1. 为啥用1.9这么老的版本,明明这几年 gc 有巨大进步;rust 你们敢用 nightly 版
2. jvm 这边的主流解决方案是 off-heap cache,go 这边你们是不是也应该这么搞
3. 你们 go 里面用的是 hash map,到了 rust 里用了 b-tree map,不公平
--
修改:eGust FROM 101.98.83.*
FROM 101.98.83.*
1楼
|
eGust
|
2020-02-05 08:03:04
|
只看此ID
关于 golang 版本,原文下面有评论,1.12有巨大的改进,自己项目的 gc 延迟问题到了这个版本不用改了
搜了一下 go 1.12 是去年3月底出的,discord 文章作者说 rust 项目是5月完成的……
【 在 eGust (十年) 的大作中提到: 】
: 语言坑:Why Discord is switching from Go to Rust
:
https://blog.discordapp.com/why-discord-is-switching-from-go-to-rust-a190bbca2b1f
: 太长不转了
: ...................
--
FROM 101.98.83.*
2楼
|
adoal
|
2020-02-05 14:40:46
|
只看此ID
今年准备把手头最后一个CentOS 5下线的人表示,
看到Go 1.9这个版本号瑟瑟发抖^o^
【 在 eGust (十年) 的大作中提到: 】
: 语言坑:Why Discord is switching from Go to Rust
:
https://blog.discordapp.com/why-discord-is-switching-from-go-to-rust-a190bbca2b1f
: 太长不转了
: ...................
--
FROM 60.176.171.*
3楼
|
ArchLinux
|
2020-02-05 16:53:44
|
只看此ID
Go 和 Rust 都是发展得很快的语言,不像 C++ 三年才出一个版本,而且使用者大多数都是用之前的 1~2 个版本。
我们可以看看 Rust 2018 能不能稳定下来。
【 在 adoal (阿豆) 的大作中提到: 】
: 今年准备把手头最后一个CentOS 5下线的人表示,
: 看到Go 1.9这个版本号瑟瑟发抖^o^
--
FROM 112.97.48.*
4楼
|
dhcn
|
2020-02-05 21:44:11
|
只看此ID
稳定啥呀,已经有人吼2021 version了
【 在 ArchLinux 的大作中提到: 】
: Go 和 Rust 都是发展得很快的语言,不像 C++ 三年才出一个版本,而且使用者大多数都是用之前的 1~2 个版本。
: 我们可以看看 Rust 2018 能不能稳定下来。
:
--
FROM 120.244.119.*
5楼
|
fanci
|
2020-02-06 17:21:26
|
只看此ID
Discord是啥
【 在 eGust () 的大作中提到: 】
: 语言坑:Why Discord is switching from Go to Rust
:
https://blog.discordapp.com/why-discord-is-switching-from-go-to-rust-a190bbca2b1f
: 太长不转了
:
--
FROM 138.19.103.*
6楼
|
Dieken
|
2020-02-06 19:56:07
|
只看此ID
论战里有人用g1.13编译试试么?甚至改写那个lru map。
off-heap就算了,用这个干嘛不用java。
【 在 eGust 的大作中提到: 】
: 语言坑:Why Discord is switching from Go to Rust
:
https://blog.discordapp.com/why-discord-is-switching-from-go-to-rust-a190bbca2b1f
: 太长不转了
: ...................
--
FROM 111.196.16.*
7楼
|
gqlu
|
2020-02-06 21:19:59
|
只看此ID
第三点reddit上他们的人提到过,go尝试过btree 但是没效果。
【 在 eGust 的大作中提到: 】
:
: 语言坑:Why Discord is switching from Go to Rust
:
https://blog.discordapp.com/why-discord-is-switching-from-go-to-rust-a190bbca2b1f
: 太长不转了
:
#发自zSMTH@Mate 9
--
FROM 117.136.8.*
8楼
|
eGust
|
2020-02-07 05:03:08
|
只看此ID
我印象中只说了一开始 rust 里也是 hash map,效果也比 go 强。另外,rust 标准库里自带 b-tree,切换过去几乎没成本,很自然的论战中也捎带着鄙视 go 没泛型的问题
【 在 gqlu (恋上此生) 的大作中提到: 】
: 第三点reddit上他们的人提到过,go尝试过btree 但是没效果。
: #发自zSMTH@Mate 9
--
FROM 101.98.83.*
9楼
|
eGust
|
2020-02-07 05:11:53
|
只看此ID
go 1.12出来的时候,很明显人家的 rust 版本已经基本写完了。discord 的官方解释是,一直在忙,所以也没时间进行后续版本的比较。这解释倒也也挺合理的,不然为啥去年年中就切换了,文章直到最近才出来。
个人理解,这也导致了另外一个非技术方面的问题,既然花了这么长时间用 rust 重写了,总得拿出些成果来给上面的人交差。搞了两年最后发现白搞了,那这件事就办砸了,以后就不太容易做类似的工作了。
所以其实我也挺期待能有后续文章,能跟1.14比较一下
【 在 Dieken (风催草低 - 明月何尝不照人) 的大作中提到: 】
: 论战里有人用g1.13编译试试么?甚至改写那个lru map。
: off-heap就算了,用这个干嘛不用java。
--
FROM 101.98.83.*
下页
|
尾页
|
1/2
|
转到
选择讨论区
首页
|
分区
|
热推
BYR-Team
©
2010.
KBS Dev-Team
©
2011
登录完整版