c++ - 为什么按值传递 string_view 比 const 引用快
问题描述
我检查了这个问题,大多数答案都说我应该按值传递它,尽管它显然传递了更多数据(因为在 32 位系统中通过值传递 8 个字节,而通过引用仅传递 4 个字节) sizeof(string_view) > sizeof(string_view*) ) 这在 C++20/17 中仍然相关吗?有人可以解释为什么吗?
解决方案
通过引用(以及指针)间接进行是有代价的。该成本可能超过复制几个字节的成本。在大多数情况下,您需要通过测量来验证您的用例/目标系统是否正确。请注意,如果函数是内联扩展的,则不太可能有任何差异,因为在任何一种情况下您都可能最终得到相同的程序集。即使不是,差异也可能非常小且难以衡量。
推荐阅读
- python - 我在如何更改 df.to_csv 输出文件名以循环浏览文件夹时缺少什么?
- python - 在 Pandas 数据框中的 pyplot 表中显示一致的科学记数法?
- git - 如何在特定日期后获取所有提交 ID 并仅显示已更改的文件?
- postgresql - Docker-Compose up Failed 因为`Service 'nginx' failed to build`
- python - 如何计算交货日期后 8 个月后的日期?
- rust - 将借用值的向量收集到借用特征的向量中
- javascript - 在获取 Spring Rest Controller 的 fetch post 请求时收到 404?
- google-apps-script - 当列与今天日期匹配时,记录一个单元格并将数据复制到同一行中的单元格
- javascript - 为什么我的 bcrypt.compare() 函数返回 false?
- markdown - 如何让 Prettier 忽略换行符的降价注释