gpt4 book ai didi

c++ - 传递参数作为值与作为 const 引用的性能

转载 作者:行者123 更新时间:2023-11-28 05:53:12 25 4
gpt4 key购买 nike

在现代编译器上,我是否通过 const 值或 const 引用传递一个小对象有关系吗?例如,我有几个方法接受而不是修改 boost::units::quantity<boost::units::si::length, float>无论如何都应该优化它以 float 。

通常我会将参数的类型声明为 const 引用,但我担心如果我这样做编译器将无法优化模板。

编辑:我没有想到但 rahul.deshmukhpatil 在评论中提到的内容,如果我接受 const& 编译器必须至少发出双重代码在我从多线程环境调用的情况下。

最佳答案

如果它是 POD,我希望按值传递它会导致整体性能稍快一些。我所说的“稍微”是指“只有在某个特定的工作领域中,理智比每纳秒的性能更重要的人才会关心”。

要理解原因,有必要了解在传统硬件上如何进行函数调用和传递参数。

除了 POD,唯一的答案是尝试任何一种方式,并收集一些统计数据。

如果您真的不在乎几纳秒的差异,那么做对您来说更方便的事情。

而且,无论哪种情况,模板都是无关紧要的。

关于c++ - 传递参数作为值与作为 const 引用的性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34765912/

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