【发布时间】:2018-08-07 23:24:08
【问题描述】:
我正在努力提高我的应用程序的性能。目前,我有以下代码迭代超过 1000 次:
if(!condition){
switch(const) {
case one : value = x; break;
case two : value = y; break;
}
} else {
switch(const) {
case one : value = p; break;
case two : value = q; break;
}
}
如果我按如下方式重构代码会提高性能吗?
switch(const) {
case one : condition ? value = p : value = x; break;
case two : condition ? value = q : value = y; break;
}
【问题讨论】:
-
参见this 答案,它解释了为什么在某些情况下
switch应该优于ifs。除此之外,这实际上不太可能成为您的应用程序的瓶颈,因此我的建议是选择更具可读性的内容。 -
@RandomThoughts 可以看看 Task Parallel 库,如果你在分离的线程中迭代,那么你肯定会提高性能
-
您是否通过探查器运行程序以便知道这是一个瓶颈?
-
@LasseVågsætherKarlsen 是的,我有,这是瓶颈之一。我也有其他事情,但只是没有找到解决方法。
-
然后进行更改,再次运行分析器,看看它是否有帮助(我怀疑它会)。
标签: c# performance if-statement switch-statement ternary-operator