AI 中文社区(简称 AI 中文社),是国内学习交流AI人工智能技术的中文社区网站,这里可获取及贡献任何AI人工智能技术,我们追求自由、简洁、纯粹、分享的多元化人工智能社区。

很多人质疑 Rust 的性能,连带虚拟机的 Java 都比它强

后端开发 · Rust 追随 137天前发布 · 浏览348次 · 点赞5次 · 收藏0次

网上看到不少 Rust 的性能测试,测试结果大跌眼镜,Rust 性能竟然连 Java 都不如,测试代码本人也没有仔细推敲,我想如果真心比较,比较代码大概也没有大的问题吧,只要代码采用相同或类似的流程,我暂且不一个个扣问题,但看到有些别有用意的人,Java 采用一层 for 迭代,Rust 故意采用嵌套两层迭代,如果不是粗心大意,这种行为是不可取的,诋毁一门语言,不应该采用这种低劣的手法。

多个语言性能比较,有时候只是作为一种参考资料,并不能代表哪个语言好过另一门语言。对于追求性能和安全性的 Rust 而言,性能比较成为一个必比的点,这个是可以理解的。但是比较结果,不要太过迷信,Java 发展了20-30年的语言,经过多年的优化,性能已经优化到极致,Rust 才发展多少年的,还有很大的改善空间,我一直相信,Rust 的性能不应该如此被人诟病,根据它的实现原理,它没有虚拟机,内存需要自己管理,更偏向底层的设计,它的性能本应在 C++ 的水准上下,如果有人测试 Rust 性能比 Java 差,那测试代码不是有点问题,就是 Rust 某方面设计上还没优化好。

我们在使用语言的时候,测试基准不单单只有性能,有时候 CPU、内存利用上也是很重要的,甚至比性能更重要,我们的应用性能瓶颈一般都在网络、 IO、数据库上,并不是在程序执行本身,所以网上的一些测试场景,参考价值并不高。一门语言性能相差不大,但是 CPU、内存使用的更少,那做出来的应用差别还是挺大的,资源使用得少,意味着服务器使用资源更低,长期累月,这个是一笔不少的开支(长期来看减少30-100倍的资源是不能忽略的),另外资源使用少,服务器不会出现高负载,峰值不飙升,常年都不重启程序,内存不会溢出,使得应用更加稳定更加丝滑。

据我了解,Rust 的 CPU、内存使用上是极其优秀的,相同程序流程,Rust 的资源使用上如下:Rust < Go < Java (越低越好)

有的同学如果质疑,可以自己详细测试比较一下,这个只是一个大概的比较。如果要量化资源使用情况,大概如下,Rust 资源使用上是 Go 的1/3 上下(Go 比 Rust 多使用 2倍左右的资源),是 Java 的 1/30 上下(Java 比 Rust 多使用20 倍以上的资源)这个量化并不一定精确,但是大概范围。同样也是让人*跌眼镜。

性能方面,我还是坚信 Rust 不会比 Java 低,抛开数据库和 IO ,网络层面,都采用自身代码,执行一段经典算法代码,不依赖第三方类库,循环 1 - 10万次,结果一目了然。

很多人质疑 Rust 的性能,连带虚拟机的 Java 都比它强 - 后端开发 - 话题 - AI 中文社区
点赞(5) 收藏(0)
3条评论
杰作
#1楼 杰作 137天前
赞(2) 藏(0) 复(1)

同意楼主的观点,Rust 性能,资源利用率各方面毋庸置疑是非常优秀的。带内存管理的 Go 虽然和 Rust 不是一个级别的,但编译文件、资源使用、性能上能做到和 Rust 接近,也不错。

Rust 追随
#2楼 Rust 追随 137天前
赞(1) 藏(0) 复(0)
对 #1 @杰作 “

同意楼主的观点,Rust 性能,资源利用率各方面毋庸置疑是非常优秀的。带内存管理的 Go 虽然和 Rust 不是一个级别的,但编译文件、资源使用、性能上能做到和 Rust 接近,也不错。

” 评论的回复:

我也很喜欢 Go,各方面折中又优秀,关键生态已经起来了。👍🏻

白无常
#3楼 白无常 135天前
赞(0) 藏(0) 复(0)

未来20年软件开发界也要变天了,以后 Rust、Go、RectJS 将替换现在的 C 、Java、Html Jquery 了。

评论

游客
登录后再评论
  • 一字一句需斟酌,一言一语显风范。
  • 评论消耗5积分,点赞、收藏消耗3积分。