文章插图
18、例如我要用一个time包来做获取时间的 。我直接选个最新版本,0.3.15

文章插图
然后在 cargo.toml里面,在dependencies里面添加该包的名称和版本号 。添加以后 , 会自动搜索有关版本进行下载引用 。

文章插图
19、然后在代码内进行引入 。引入包,使用 extern crate 包名称 。例如time 。use 类似C#里面的 using,可以using包内的一些功能或者模块 。例如我要获取time里面的now()方法,不过这个包看来现在没有这个方法了 。
Rust这方面的语法和C++还是比较接近,通过 :: 来进行引出下一级;类似.NET里面的 XXX.XXX的这个句点 。

文章插图
20、咱们换一个 , 换成 chrono这个包

文章插图
21、然后引入有关版本进来,同上面的time操作 。因为time包没有我要的 , 所以就干掉就好了 。

文章插图
22、引入包,以及使用它里面的所有功能模块,可以使用*来代替,这点跟Java或Python比较类似 。

文章插图
23、然后写一个累加器,用来做性能测试使用 。例如,从1累加到10亿 。代码可见下图 。

文章插图
24、此处我再创建一个.NET 6都控制台程序 , 也做同样的事情,看看谁更快 。有关代码,如下图所示,功能与Rust的代码一模一样 。

文章插图
25、为了更加公平,咱们把程序都编译为release版本 。使用命令 cargo build --release 可以指定编译为release版本

文章插图
26、VS上对.NET 6开发的程序,也编译成release版本 。

文章插图
27、为了方便查看效果,我们都在控制台下面准备好这两个程序 。

文章插图
28、两个程序都运行一下看看效果 。可以发现各自的大概耗时 。Rust大约耗费40~50MS , .NET6编写的大约耗费600~700MS,卧槽,差距有点大 。

文章插图
29、那再来个中间的语言,C++来看看效果 。写一个功能一模一样的C++程序,也编译为release版本,然后再看效果 。由于C++版本输出详细时间,包括毫秒等 , 写起来比较啰嗦,所以就简单点 , 直接输出耗时的毫秒数了 。有关代码以及说明,见下图 。

文章插图
30、C++的运行输出结果 , 大约接近200MS,比.NET6快400MS,但是比Rust居然差距也这么多?unbelievable!

文章插图
31、为了客观一点,咱再打开Rust与.NET6的程序,以及和C++程序,再运行一下看看结果 。结果如下图所示,还是差不多的保持上面的结果 。

文章插图
32、总结一下:Rust依靠强大的性能,以及安全性(你写代码的时候就可以感受到了,如果被检测到代码不够安全,波浪线或者错误提醒会一直提示你,直到你换个写法),已经开始被更多的人采纳 。一些科普类的,就不继续描述了 , 大佬们要是感兴趣,可以自行去探索一下 。如需转载,请注明文章作者以及出处 。
作者:Wesky, 原文出处【https://www.cnblogs.com/weskynet/p/16808320.html】
如需以上的三个demo源码项目 , 可以微信扫下方二维码,在公众号内发送【20221019】即可获取 。

文章插图
以上就是该文章的全部内容,要是觉得有帮助,欢迎一键三连?。。。?
如果大佬们对.NET方向的技术感兴趣,也欢迎在原文最下方加入我的QQ群 。如需加微信群,可以私聊我微信进行加群:
推荐阅读
- 【真正解决fps低问题】玩英雄联盟fps低怎么办
- 原神徇察五风活动玩法规则是什么
- 诺亚之心风暴试炼51层打法是什么
- 元气骑士战利品箱子获取方法
- 三星怎么快速截屏(三星手机怎么录屏)
- fps太低怎么办(fps从100多突然变低到10几)
- 强国杯东杯分区赛miscwp
- .NET周报【10月第2期 2022-10-17】
- 公主连结38图速推阵容怎么搭配
- 【算法训练营day7】LeetCode454. 四数相加II LeetCode383. 赎金信 LeetCode15. 三数之和 LeetCode18. 四数之和