【发布时间】:2013-01-10 20:04:28
【问题描述】:
好的,这就是我的困境:假设我们有一个类,以及几个构造函数,它们将被多次调用(每秒数亿次;所以速度至关重要)。
哪种方式更可取? (有什么区别吗?)
方式A:
// Prototype
class MyClass
{
public:
// Constructor
MyClass (int x, int y, int z) : X(x), Y(y), Z(z) {}
// Variables
int X,Y,Z;
};
方式 B:
// Prototype
class MyClass
{
public:
// Constructor
MyClass (int x, int y, int z);
// Variables
int X,Y,Z;
};
// Implementation
MyClass::MyClass(int x,int y,int z)
{
this->X=x;
this->Y=y;
this->Z=z;
}
【问题讨论】:
-
为什么要猜测/询问而不是衡量?
-
@NPE 我首先要求避免重写大约一百行,只是因为我的一个概念毕竟可能是错误的(我的意思是从理论的角度来看)......
-
@Dr.Kameleon:您可以构建一个综合基准,并获得与您的环境相关的非常准确的答案。
-
最好的优化可能是不每秒构造数亿个东西。
-
我看不出第二种变体更适合的情况。
标签: c++ performance oop class constructor