我想每个程序员都会遇到这种情况,我们可以使用比较运算符' =='在我的情况下情况是这样的,c ++ pgm
代码1:这已在除构造函数
之外的所有文件中使用@Policy
但我可以通过以下方式执行与上述相同的操作, 当变量 a 在构造函数本身中变为10时,我将bool变量设置为true,即
if(a==10)
{
//do something;
}
然后我在我的所有文件中使用以下代码而不是代码1,
代码3:
constructor_name()
{
boolean variable_name=TRUE;//when a == 10;
}
这对于性能,代码1或代码3更好。我希望我已经说明了我的情况,而不是你能理解的。请帮助我。提前谢谢。
答案 0 :(得分:2)
你不应该进行微观优化。你很难发现你的2版本在性能上有任何差异(也许你会节省1个CPU周期),但它不值得花时间和精力,尤其是因为现在CPU非常快。
仅优化,如果您在代码中进行了分析并找到瓶颈。
这样看,如果将布尔变量存储在类中,它会使用内存(1个字节)来节省1个CPU周期。根据您创建课程的频率,可以向上扩展(即使数量仍然非常小)。 您可能会保存1个周期,但丢失了1个字节。
如果你在生产代码中写这个,我相信其他人会发现它令人困惑(我愿意),并想知道为什么你在类中放置一个isTen
布尔值,而不是仅仅使用{{来比较值1}}。
此外,如果您将构造函数的operator==
更改为a
,然后10
仍为isTen
,则可能存在错误,但false
是a
!
答案 1 :(得分:-1)
我发现下面的内容会有所作为,
考虑变量 a 是一个整数变量,它需要4个字节(假设int为4bytes),那么编译器必须执行4字节内存的比较,其中bool变量需要1byte,我猜这在性能上有所不同。