繁体   English   中英

Rust中的宏和函数有性能差异吗?

[英]Is there any performance difference between macros and functions in Rust?

在 Rust 中,宏在编译时执行。 它们通常会扩展为编译器需要进一步处理的新代码。

但是在编译宏之后或编译之前,正常的 function 与宏之间是否存在性能差异?

我假设您在谈论运行时性能。 编译时明智的宏通常较慢,因为它们是为每次调用编译的。

宏就像#[inline(always)]函数。 这对性能可能是好是坏,取决于许多特征,例如对代码的调用次数、代码大小或指令缓存压力。 在做出决定之前始终进行基准测试。

如果您可以使用 function,则更喜欢那个。 如果认为对性能有好处,则始终可以将其标记为#[inline(always)] ,同时使用更熟悉的语法和更快的编译时间。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM