数智资源网
首页 首页 大数据 查看内容

Rust 和 C 性能对比:排序

木马童年 2021-2-21 14:25 45 0

“C++ 和 Java 的发展速度比 C 语言更快,但我敢肯定,C 语言仍然会长期存在。”——Dennis Ritchie, C语言之父C 和 Rust 的速度比较方法比较这两种语言速度的方法是,通过实现常用的排序算法,并在不同的元素范围运 ...

“C++ 和 Java 的发展速度比 C 语言更快,但我敢肯定,C 语言仍然会长期存在。”——Dennis Ritchie, C语言之父

Rust 和 C 性能对比:排序

C 和 Rust 的速度比较

方法

比较这两种语言速度的方法是,通过实现常用的排序算法,并在不同的元素范围运行,比较哪种语言在排序时耗时最长。我们使用的排序算法包括:

1. Bubble Sort(冒泡排序)

2. Insertion Sort(插入排序)

3. Selection Sort(选择排序)

4. Shell Sort(希尔排序)

5. Heap Sort(堆排序)

Rust 和 C 性能对比:排序

图:时间复杂度

以上是常见的排序算法的时间复杂度,通过观察最坏情况下的复杂度,我们可以大致知道哪种排序技术会在它们之间表现最差。

冒泡排序 Bubble sort 最坏情况复杂度为O(N2),与其他排序算法相比,可能会出现表现最差的情况。我们将要生成的结果还将输出比较元素排序所需的时间,来帮助我们了解最坏情况下的时间复杂度。

所以,我已经用 C 和 Rust 编写了以上 5 种算法。对于输入,我使用一个整数数组,并使用 C 语言中的随机数生成器函数 rand() 和 Rust 中的 rand::Rng 在数组中填充随机数。这个数组被作为排序算法的输入,输出记录在一个矩阵中。测试三个范围 1000,10000 & 100000 个元素的算法性能。

我们设置运行了 100 次迭代,并取平均值来生成输出结果。

性能测试的设置

完成并运行上述设置的系统配置是:

macOS Catalina

MacBook Pro(16英寸,2019年版本)

处理器: 2.3 GHz 8 核英特尔酷睿 i9

内存: 16 GB 2667 MHz DDR4

clang 版本 12.0.0 (优化 flag -O3)

rustc 1.45.2 (优化 flag -release)

性能统计

以下是生成的输出:

Rust 和 C 性能对比:排序

C语言在不同排序算法上的表现

Rust 和 C 性能对比:排序

Rust 在不同排序算法上的表现

从输出结果中可以非常清楚地看到,大部分结果是非常接近。对于每种排序算法和数组范围,在某些情况下 Rust 表现更好,而在某些情况下 C 表现更好。在较小的元素范围(1000 元素)中,除了插入排序之外,Rust 表现更好一些。对于 10000 元素的范围,C 语言在每种排序算法下都表现得更好。

Rust 和 C 性能对比:排序

条形图也展示了所有情况下的运行结果,速度几乎相同。

你也可以尝试在自己的系统上去验证。

项目代码 Github :https://github.com/imrushabh/C_vs_Rust

结论

要得出哪种语言更快的结论是相当困难的,因为它取决于具体情况。但我们可以认为 Rust 在速度上是 C 语言的竞争对手,它比许多其他流行的语言如 Java 和 Python 速度更快。Rust 提供了很多功能,比如它注重速度、内存安全和并行,而且它也是开源的,我们可以使用 Rust 开发广泛的新软件应用,比如游戏引擎、操作系统、文件系统、浏览器组件和虚拟现实的模拟引擎。在未来的时间里,我们肯定会到处看到 Rust 的身影!!!

英文原文:

https://levelup.gitconnected.com/which-is-faster-rust-or-c-lets-find-out-who-is-the-usain-bolt-87495c774c8

声明:文章收集于网络,版权归原作者所有,为传播信息而发,如有侵权,请联系小编删除,谢谢!

欢迎加入本站公开兴趣群

软件开发技术群

兴趣范围包括:Java,C/C++,Python,PHP,Ruby,shell等各种语言开发经验交流,各种框架使用,外包项目机会,学习、培训、跳槽等交流

QQ群:26931708

C语言 性能测试 英特尔 软件应用 操作系统 文件系统
0
为您推荐
HIVE数据仓库完美实战课程,资源教程下载

HIVE数据仓库完美实战课程,资源教程下载

课程名称【快速掌握HIVE视频教程】HIVE数据仓库完美实战课程课程目录├第一周:hive基…...

尚硅谷大数据Flink技术与实战,资源教程下载

尚硅谷大数据Flink技术与实战,资源教程下载

课程名称尚硅谷大数据Flink技术与实战课程目录理论_Flink基础 001__Flink理论_Flink…...

廖雪峰-2019大数据分析精品资料价值1980元,资源教程下载

廖雪峰-2019大数据分析精品资料价值1980元,资源教程

课程介绍:廖雪峰大神历时3个月打磨出来的《数据分析必备技能》的视频学习资料,由浅…...

尚硅谷-大数据项目之电商数仓教程下载

尚硅谷-大数据项目之电商数仓教程下载

课程介绍:本课程以国内电商巨头实际业务应用场景为依托,对电商数仓的常见实战指标以…...

小码哥李明杰Java版《恋上数据结构与算法》 ,资源教程下载

小码哥李明杰Java版《恋上数据结构与算法》 ,资源教

课程目录01-学前须知01-为什么要学习数据结构与算法02-编程语言的选择03-课程大纲04-…...

阿里云大数据分析师ACP认证视频教程下载

阿里云大数据分析师ACP认证视频教程下载

课程介绍阿里云大数据行业认证-大数据分析师认证(ACP-Alibaba Cloud Certified Prof…...

恋上数据结构与算法(第二季),视频教程下载

恋上数据结构与算法(第二季),视频教程下载

课程介绍:课程由MJ老师和名企算法大咖共同研发,在保证易懂的同时确保课程的系统全面…...

社交网络分析与挖掘,视频教程下载

社交网络分析与挖掘,视频教程下载

课程介绍:社交网络和数据挖掘是计算机学科相关研究中的热点,其具体研究涵盖理论、关…...