为什么通过值传递int比通过引用更快?

时间:2017-01-06 13:32:47

标签: c++

CppCoreGuidelines表示由于从函数访问所需的一些开销,按值传递小对象(最多两个或三个字)比传递更快。你能解释一下,在这种情况下,究竟是什么开销呢?

2 个答案:

答案 0 :(得分:5)

该文档还为您提供了解释 - 您引入了额外的间接方法。至少,您需要取消引用您不需要的指针。它还解释了哪些方法很快,哪些方法很慢(以及为什么)。

这并不意味着你必须关心 - 除非你处于代码的热门部分,否则差异并不重要。

答案 1 :(得分:4)

开销是这种引用涉及间接,通常使用指针在幕后实现。因此,您有一个解除引用操作,其权重不会与这么少量数据的任何明显好处叠加。

您链接的页面直译为:

  

当复制很便宜时,没有什么比复制的简单性和安全性更好,对于小对象(最多两个或三个单词),它也比通过引用传递更快,因为它不需要额外的间接来从函数访问

相关问题