【发布时间】:2015-12-12 17:44:05
【问题描述】:
很长一段时间以来,我一直在使用 JavaScript,其中 this 关键字是必需的。现在,我正在用 C++ 编程,但使用 this 关键字的习惯仍然存在。但真正的问题是 - 使用 this 关键字是否会对性能产生负面影响(如不必要的内存访问)?我的意思是 - 代码省略 this 对编译器更友好还是完全无关紧要?因为从理论上讲,引用this 有点像引用指针,就像汇编程序中的opcode $reg0, [$reg1],它可以在代码中添加一个更多的内存引用,但我想编译器应该以比典型指针更聪明的方式处理它,对吗?
我个人更喜欢使用this,因为我觉得在不使用它的代码中有点迷失,因为我不知道某些变量是否是成员,或者它们是本地的还是全局的或什么,但如果它会导致性能问题我可能会强迫自己避免它。
【问题讨论】:
-
没有区别。写你喜欢的任何东西。
-
您可以使用gcc.godbolt.org添加和删除
this->,看看生成的程序集是否有变化。 (即使没有优化也不会。) -
@zenith:我认为关于优化的问题完全被混淆了。添加
this->是纯语法级别的细节。表达式的含义是完全一样的,当然你需要解释一个相对于某个对象实例的成员名。
标签: c++ performance assembly heap-memory