当前位置:  开发笔记 > 编程语言 > 正文

在c ++中使用"this"关键字对性能有影响吗?

如何解决《在c++中使用"this"关键字对性能有影响吗?》经验,为你挑选了1个好方法。

很长一段时间我一直在使用javascript,其中this关键字是必需的.现在,我用c ++编程,但习惯使用this关键字仍然存在.但真正的问题是 - 使用this关键字是否会对性能产生负面影响(如不必要的内存访问)?我的意思是 - 代码省略this了对编译器更友好的优化,或者它完全无关紧要?因为理论上严格来说,指的this是指代指针,就像opcode $reg0, [$reg1]汇编程序一样,它可以在代码中添加一个更多的内存引用,但我想它应该由编译器以比典型指针更聪明的方式处理,我是对的吗?

我个人更喜欢使用,this因为我感觉有点迷失代码而不使用它,因为我不知道某些变量是成员还是本地或全局或什么,但如果它导致性能问题我可能强迫自己避免它.



1> Basile Stary..:

不,优化编译器(对于C++ 11或更高版本)很可能为for 和for 生成相同的二进制代码,同样也为和.this->fieldfieldthis->memberfun(2,3)memberfun(2,3)

(可能,即使没有优化,也会产生相同的效率代码;但我不确定)

有时(特别是在编码模板时)this 是必需的,因为省略它有不同的含义(我忘了哪些奇怪的情况).

当然,编译时间可能略有不同.但你不应该在意.

this出于可读性原因,一些编码约定需要或(更常见地)相反禁止使用.选择你喜欢的任何约定,但要保持一致.

另请参阅此答案,解释this 在Linux x86-64 ABI上如何实际处理.

推荐阅读
郑谊099_448
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有