Copyright © 2022-2024 aizws.net · 网站版本: v1.2.6·内部版本: v1.23.2·
页面加载耗时 0.00 毫秒·物理内存 63.5MB ·虚拟内存 1235.8MB
欢迎来到 AI 中文社区(简称 AI 中文社),这里是学习交流 AI 人工智能技术的中文社区。 为了更好的体验,本站推荐使用 Chrome 浏览器。
读了Java vs. Go vs. Rust 语言性能、编译文件、 CPU、内存使用情况大比拼 之后,作为一个单方面的 Gopher,有一些自己的理解,一个没有真正使用 Rust 开发过项目的人,分析使用哪个适合开发项目,肯定有失偏颇的。从文章测试结果来看,无论是从编译文件、使用内存,使用 CPU 大小来判断,无疑 Rust 是大比分胜出的。Java 和 Go 差一个数量级(十倍为准),甚至 Java 和 Rust 的差距非常大,已经不是一个数量级可以说清楚了。就拿内存使用来说,Java 是内存消耗大户,既霸道又无理,一个普通项目内存占用上轻轻松松比 Rust 多出100倍的差距(甚者200倍都有)。
而 Go 和 Rust 对比,差距好像也不是很明显,说 Go 相差 Rust 一个数量级,又不准确,半个数量级好像也有点过分,总之,Go 和 Rust 使用内存和 CPU 上可能是 Java 的九牛一毛,但是请求数却优秀不少(高出20%-40%左右),有种老板看到,马儿不怎么吃草,但又跑得很快,困惑不已的感觉。
如果在项目开发中做出选择,可以参考 Go 和 Rust 以下优略势来判断:
* Go 上手平顺,门槛不是很高,一般有语言学习能力的人都能够上手的。
* Go 生成的二进制文件不大不小,属于优秀,编译很快,同时支持交叉编译(在一个系统平台上,可以编译多个系统平台的包,如 Windows 下编译 Linux 下的二进制文件包),包管理有自己的一套,开发工具友好规范,真正做到跨平台。
* Go 使用内存很低,但是比 Rust 高一点,基本不会超过一倍的范围,大概比 Rust 多出 30%-80%左右。
* Go 使用 CPU 很理性,能够发挥多核的优势,资源基本不会占满,可能准备占满时,进程已经处理完毕要释放了,做到恰到好处的程度。
* Go 的生态已经很完善,在 Github 基友网站上已经有非常多知名的各行各业的第三方库,而且完全跟着 Go 官方的规范走。
* Rust 上手稍微陡峭一些,如果你有学习 C/C++/Java 的能力,学习 Rust 不成问题,普通人稍微吃力一些,熟悉了也好搞的。
* Rust 生成的二进制文件非常小,完全可以忽略不计的级别。编译速度中等偏上,包管理也有自己的一套。开发工具也有一些,还有待完善。如果有学习 Rust 的能力,工具不在话下,同样也能做到真正跨平台的,不知道能不能交叉编译(Rust 开发者知道可以补充)。
* Rust 使用内存极低,而且很安全,都是以 kb 为单位的,平时一个项目多多少少要几十M的内存吧,而 Rust 开发的项目,估计1M都算很轻松平常了,内存安全、内存使用极低是它的杀手锏。
* Rust 使用 CPU 也非常低,基本不让服务器负荷运行,项目运行的稳定度应该非常 Nice,可能一个项目几年都不用重启,都是正常不过的事情。
* Rust 的生态也逐渐形成,一些大厂和知名企业,已经开始用它开发一些高性能场景的产品,但是开源参与度还有待提高,特色顶级项目还不算多。
总结: 这两门语言同样可以开发 web 项目、服务接口、网络服务,在网络服务开发上,Go 有天生的优势,在底层项目开发上,Rust 应该非常擅长,具有得天独厚的的优势。
@Rust 追随 你可以随时吐槽我了。
@Rust 追随 你可以随时吐槽我了。
” 评论的回复:不敢不敢,存同求异。
@Rust 追随 你可以随时吐槽我了。
” 评论的回复:你的话里话外,都是说 Go 是高性价比的语言。事实上 Rust 入门并不难!使用门槛上和 Go 差不多一致。
另外补一点,Rust 完全能交叉编译的,知乎上有教程:深入理解Rust如何进行交叉编译