嘿,写这个是否更高效:
Method_That_Is_Getting_Repeated()
{
if(var1 <0)
{
var2 = 'l';
}
else if(var1 >0)
{
var = 'r';
}
}
或者这个:
Method_That_Is_Getting_Repeated()
{
if(var1 <0)
{
if(var2 != 'l')
var2 = 'l';
}
else if(var1 >0)
{
if(var2 != 'r')
var = 'r';
}
}
在许多情况下,var2已经具有正确的值,因此不必再次设置它。
换句话说:if语句的执行时间/性能是否比初始化一个变量(如float,int,char,double,bool)要多/少?
答案 0 :(得分:3)
将char
字段重置为相同值没有危险。这是一个原子操作,简单的操作,无法以有意义的方式观察到。 if
语句虽然是一个分支操作,但由于预测错误的可能性, genarally 说话比直接设置慢。现在这不是我永远不会设计我的程序,但鉴于将字段设置为相同值没有真正的缺点,为什么还要费心if
呢?
答案 1 :(得分:1)
这些操作将最终进入堆栈并且快速闪电。与应用程序的其他较大部分相比,性能差异可以忽略不计(与我打赌的数百万次操作相差几毫秒)。尽可能保持可读性和可读性,并在这些行成为性能分析报告的最大违规者后返回重新评估(我向他们保证,除非这确实是您的应用程序所做的唯一事情)。< / p>
答案 2 :(得分:0)
在版本1中,Method_That_Is_Getting_Repeated
版本2的实现在可读性和性能方面都很差。我认为分配char
比比较它更快。
前段时间我做了一些基准测试,这表明我直接分配比比较更好。因此,请自行衡量您的表现,看看哪个更好。
答案 3 :(得分:0)
第二种选择具有更高的复杂性,因此可能性能较差。它的可读性也较差。我不会担心它,除非它被证明是导致性能缓慢的原因。