我有兴趣从一开始就编写好的代码,而不是以后优化代码。很抱歉没有提供基准我目前没有工作场景。感谢您的关注!
使用 FunctionY 优于 FunctionX 的性能提升是什么?
已经有很多关于 stackoverflow 的讨论,但我对访问子成员(递归)时的情况表示怀疑,如下所示。编译器(比如 VS2008)会将 FunctionX 优化为 FunctionY 之类的东西吗?
void FunctionX(Obj * pObj)
{
pObj->MemberQ->MemberW->MemberA.function1();
pObj->MemberQ->MemberW->MemberA.function2();
pObj->MemberQ->MemberW->MemberB.function1();
pObj->MemberQ->MemberW->MemberB.function2();
..
pObj->MemberQ->MemberW->MemberZ.function1();
pObj->MemberQ->MemberW->MemberZ.function2();
}
void FunctionY(Obj * pObj)
{
W * localPtr = pObj->MemberQ->MemberW;
localPtr->MemberA.function1();
localPtr->MemberA.function2();
localPtr->MemberB.function1();
localPtr->MemberB.function2();
...
localPtr->MemberZ.function1();
localPtr->MemberZ.function2();
}