gpt4 book ai didi

rust - 在 Rust 中平方函数和直接调用 powi(2) 之间有性能差异吗?

转载 作者:行者123 更新时间:2023-11-29 08:10:12 26 4
gpt4 key购买 nike

在 Rust 中,您可以将 (x * x) 写成 x.powi(2)

是否有任何理由支持/反对将 (x * x) (除了可读性和个人偏好之外) 放入 Rust 中的函数/宏中,或者这是否等同于使用 x.powi(2)?

(其中 x.powi(2) 中的常量 2 被折叠并转换为 x * x)

最佳答案

不,对于当前的 Rust 编译器,它们是等效的,生成完全相同的结果。

您可以通过 Rust Playground 查看为两种变体生成的汇编代码:

#![crate_type = "lib"]

pub fn square_mul(x:f64) -> f64 {
x*x
}

pub fn square_pow(x:f64) -> f64 {
x.powi(2)
}

选择 channel 并释放编译模式,然后按下左上角的ASM按钮。这是 Rust v1.10 的输出:

// square_mul:
mulsd %xmm0, %xmm0
retq

// square_pow:
mulsd %xmm0, %xmm0
retq

因此 Rust 为这两个函数生成完全相同的代码。

关于rust - 在 Rust 中平方函数和直接调用 powi(2) 之间有性能差异吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38799724/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com