<分区>
Possible Duplicate:
Is the conditional operator slow?
我是 C# 中 ?
运算符的大量用户。然而,我的项目经理经常警告我,与大型应用程序中的 If-Else
语句相比,使用 ?
运算符可能会降低一些性能。所以我被告知要避免使用它。但是,我喜欢使用它,因为它简洁明了,而且可以保持代码整洁。
使用?
操作符会有这样的性能开销吗?
<分区>
Possible Duplicate:
Is the conditional operator slow?
我是 C# 中 ?
运算符的大量用户。然而,我的项目经理经常警告我,与大型应用程序中的 If-Else
语句相比,使用 ?
运算符可能会降低一些性能。所以我被告知要避免使用它。但是,我喜欢使用它,因为它简洁明了,而且可以保持代码整洁。
使用?
操作符会有这样的性能开销吗?
最佳答案
我运行了 1 亿个三元运算符和 1 亿个 If-Else 语句,并记录了每个语句的性能。这是代码:
Stopwatch s = new Stopwatch();
// System.Diagnostics Stopwatch
int test = 0;
s.Start();
for(int a = 0; a < 100000000; a++)
test = a % 50 == 0 ? 1 : 2;
s.Stop();
s.Restart();
for(int b = 0; b < 100000000; b++)
{
if(b % 50 == 0)
test = 1;
else
test = 2;
}
s.Stop();
这是结果(在 Intel Atom 1.66ghz 和 1gb ram 上运行,我知道,它很糟糕):
三元运算符:每个运算符 5986 毫秒或 0.00000005986 秒。
If-Else:每个语句耗时 5667 毫秒或 0.00000005667 秒。
不要忘记我运行了 1 亿次,我认为两者之间 0.00000000319 秒的差异并不重要。
关于c# - 三元?运算符与 C# 中的传统 If-else 运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11643137/