提问人:0xDEADC0DE 提问时间:10/6/2020 更新时间:10/6/2020 访问量:191
为什么按值传递string_view比 const 引用更快
why passing string_view by value is faster than const reference
问:
我检查了这个问题,大多数答案都说我应该按值传递它,尽管它显然传递了更多的数据(因为通过值你传递了 8 个字节,而通过引用只传递了 4 个字节,在 32 位系统中 sizeof(string_view) > sizeof(string_view*)) 这在 C++20/17 中仍然相关吗?有人可以解释为什么吗?
答:
4赞
eerorika
10/6/2020
#1
通过引用(以及指针)进行间接操作是有代价的。该成本可能超过复制几个字节的成本。与大多数情况一样,您需要通过测量来验证这是否适用于您的用例/目标系统。请注意,如果函数是内联扩展的,则不太可能有任何差异,因为无论哪种情况,您最终都可能得到相同的程序集。即使没有,差异也可能非常小且难以衡量。
评论
-O3