Rust 比 C 谁更快?(一)

作者: luk036分类: 校园学习 发布时间: 2024-01-08 15:32:18 浏览:15237 次

Rust 比 C 谁更快?(一)

L__B_:
这个 rust 代码写的有点离谱了,慢点是正常的,rust 应该尽量使用 iter 结合一些函数式的操作来进行,其次最好也别这样用 unsafe。。。

【回复】回复 @小曲儿动人心 :就是那种随便学了一点然后就着急拿来比的那种感觉[笑哭][笑哭][笑哭]
【回复】[笑哭]过于离谱,通篇全是unsafe,static mut
【回复】我怀疑这个是拿c2rust转的(
何不忆往昔:
数组改Vec变慢是因为编译器没办法在编译时知道边界,因此会生成大量边界检查,解决办法是要访问Vec前先前置边界断言,或者调用unsafe无检查版本的 get_unchecked(_mut)。 不要用全局static,编译器没办法假设数据流,这会阻止编译器优化,全局不变的用const,剩下的用局部变量,宁愿传封装状态结构体的引用也别全static。 尽量少用unsafe,滥用unsafe不但失去了Rust的先进性,而且unsafe并不总是让它更快,例如Rust的引用比原始指针多了无别名标注,性能一般高于原始指针。

【回复】一堆static mut的写法一看就是C写多了[傲娇]一点都不Rusty
【回复】我之前有试过,使用get_unchecked也可能不会变快[笑哭],因为有分支预测的关系带边界检查的代码并不会很慢,但不带边界检查的编译器在优化后面的代码时反而失去了一些信息。
bili_72974763675:
C更快,想都不用想,当然带有静态类型优化的C++可能会比C还快

PrivateRookie:
别那么多static mut, 会阻止编译器优化的, 而且你真要连续打印的话, 最好先获取stdout的锁, 不如print!和println!在每次调用时都会先拿锁

一只幸运zhu:
白话夹普通话+英语单词,听着非常难受,就不能只说一种吗?[吃瓜]

iunggognsoinr:
很少见到rust慢不是没加-r的,这写的也过于离谱了,而且编译还是手动rustc编译[笑哭][笑哭]

ywltherGladex:
Rust像RefCell有运行检查,数组索引有index越界检查,为了安全性会牺牲一定性能

【回复】回复 @某只福瑞粉猫的小号 :我焯,冰马[doge]
【回复】冰馬【rust比C还要快[星星眼]】
あなたの心:
求你了,不是每个人都听得懂方言的 你能加字幕吗?听不懂你说的什么

某公主链接福瑞的小号:
你们太弱,会粤语的我听起来没有任何阻碍[吃瓜][呲牙]

烫烫烫屯屯屯铪铪铪:
time getNextDay() { sleep(1day); return now(); }

C语言 rust 是老师,也是UP主! 期末生存大作战

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!