将const调用应用于原始类型时,是否可以提高性能?

法比安

对于对象(尤其是字符串),按引用调用比按值调用要快,因为函数调用不需要创建原始对象的副本。使用const,还可以确保引用不被滥用。

我的问题是,如果使用基本类型(例如bool,int或double),按引用进行const调用是否也更快。

void doSomething(const string & strInput, unsigned int iMode);
void doSomething(const string & strInput, const unsigned int & iMode);

我的怀疑是,一旦原始类型的字节大小超过地址值的大小,立即使用按引用调用是有利的。即使差异很小,我也想利用这一优势,因为我经常调用其​​中一些函数。

附加问题:内联对我的问题的答案有影响吗?

FélixCantournet

我的怀疑是,一旦原始类型的字节大小超过地址值的大小,立即使用按引用调用是有利的。即使差异很小,我也想利用这一优势,因为我经常调用其​​中一些函数。

在C ++中,基于预感的性能调整大约占0%的时间(这是我对统计数据的直觉,它通常可以正常工作...)

正确的是,const T&它将小于Tif sizeof(T) > sizeof(ptr),因此取决于系统通常为32位或64。

现在问问自己:

1)多少个内置类型大于64位?

2)难道不值得复制32位代码吗?如果您的功能由于没有将32位值复制到其中而变得更快,那么它可能没有太大作用?

3)你真的那么聪明吗?(扰流板警报:否。)由于几乎总是一个坏主意的原因,因此请参见以下很好的答案:https : //stackoverflow.com/a/4705871/1098041

最终只是传递价值。如果经过(彻底)性能分析后发现某个功能是瓶颈,而您尝试的所有其他优化还不够(您应该在此之前尝试大多数优化),请通过const引用传递。

然后看看它不会改变任何东西。翻滚和哭泣。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将类型转换应用于列表:“ const”是否特殊?

来自分类Dev

将类型转换应用于列表:“ const”是否特殊?

来自分类Dev

即使引入了网络延迟,将子域用于静态资源也可以提高性能吗?

来自分类Dev

通常,将输出重定向到/ dev / null是否可以提高性能?

来自分类Dev

将常用字符串定义为变量是否可以提高性能?

来自分类Dev

Java crypto,是否可以重置IV以提高性能?

来自分类Dev

骨干:范围界定是否可以提高性能?

来自分类Dev

连接池是否总是可以提高性能?

来自分类Dev

使用可为空的结构是否可以提高性能?

来自分类Dev

Java crypto,是否可以重设IV以提高性能?

来自分类Dev

更具体的异常处理是否可以提高性能?

来自分类Dev

在mysql中应用多个联接时提高性能

来自分类Dev

将函数应用于树结构时可以匹配期望类型

来自分类Dev

是否将KnownTypeAttribute应用于对象类型?

来自分类Dev

是否可以将渐变应用于框阴影?

来自分类Dev

是否可以将变化应用于ggvis中的属性

来自分类Dev

是否可以仅将setuid应用于特定用户?

来自分类Dev

是否可以将 CSS 样式应用于容器元素?

来自分类Dev

是否可以将 RenderTransform 应用于实际的 UIElements?

来自分类Dev

在将“splitAt”应用于“List”之后,是否有任何简洁的方法可以将类型从“Int”转换为“Double”?

来自分类Dev

将实体框架 C# 代码转换为原始 SQL 以提高性能

来自分类Dev

是否有必要将“ Limit 1”用于“ SQL SELECT”以提高性能?

来自分类Dev

Java两个Web服务调用可以并发以提高性能

来自分类Dev

我可以禁用“禁用应用程序以帮助提高性能”通知吗?

来自分类Dev

IDE到SATA适配器是否可以提高性能?

来自分类Dev

RAID1是否可以通过Linux mdadm提高性能?

来自分类Dev

浏览器端是否可以调整大小以提高性能?

来自分类Dev

在加密卷上使用压缩文件系统是否可以提高性能?

来自分类Dev

jQuery:选择器专一性是否可以通过.on()委派提高性能?

Related 相关文章

  1. 1

    将类型转换应用于列表:“ const”是否特殊?

  2. 2

    将类型转换应用于列表:“ const”是否特殊?

  3. 3

    即使引入了网络延迟,将子域用于静态资源也可以提高性能吗?

  4. 4

    通常,将输出重定向到/ dev / null是否可以提高性能?

  5. 5

    将常用字符串定义为变量是否可以提高性能?

  6. 6

    Java crypto,是否可以重置IV以提高性能?

  7. 7

    骨干:范围界定是否可以提高性能?

  8. 8

    连接池是否总是可以提高性能?

  9. 9

    使用可为空的结构是否可以提高性能?

  10. 10

    Java crypto,是否可以重设IV以提高性能?

  11. 11

    更具体的异常处理是否可以提高性能?

  12. 12

    在mysql中应用多个联接时提高性能

  13. 13

    将函数应用于树结构时可以匹配期望类型

  14. 14

    是否将KnownTypeAttribute应用于对象类型?

  15. 15

    是否可以将渐变应用于框阴影?

  16. 16

    是否可以将变化应用于ggvis中的属性

  17. 17

    是否可以仅将setuid应用于特定用户?

  18. 18

    是否可以将 CSS 样式应用于容器元素?

  19. 19

    是否可以将 RenderTransform 应用于实际的 UIElements?

  20. 20

    在将“splitAt”应用于“List”之后,是否有任何简洁的方法可以将类型从“Int”转换为“Double”?

  21. 21

    将实体框架 C# 代码转换为原始 SQL 以提高性能

  22. 22

    是否有必要将“ Limit 1”用于“ SQL SELECT”以提高性能?

  23. 23

    Java两个Web服务调用可以并发以提高性能

  24. 24

    我可以禁用“禁用应用程序以帮助提高性能”通知吗?

  25. 25

    IDE到SATA适配器是否可以提高性能?

  26. 26

    RAID1是否可以通过Linux mdadm提高性能?

  27. 27

    浏览器端是否可以调整大小以提高性能?

  28. 28

    在加密卷上使用压缩文件系统是否可以提高性能?

  29. 29

    jQuery:选择器专一性是否可以通过.on()委派提高性能?

热门标签

归档