性能if else,switch和三元运算符

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了性能if else,switch和三元运算符相关的知识,希望对你有一定的参考价值。

我正在努力提高我的应用程序的性能。目前,我有以下代码,迭代次数超过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;
}
答案

你可以使用秒表记录时间,这样你就可以看到自己,但是当我验证时,我看到了第二个逻辑的性能提升。此外,它可能会因您通过的条件而有所不同。

 System.Diagnostics.Stopwatch stopwatch = new System.Diagnostics.Stopwatch();
             stopwatch.Start(); // START THE WATCH

            // write your logic here 

            stopwatch.Stop(); // STOP THE WATCH

            Console.WriteLine("Time taken : {0}", stopwatch.Elapsed);
            Console.ReadKey();

希望它能帮到你。

以上是关于性能if else,switch和三元运算符的主要内容,如果未能解决你的问题,请参考以下文章

Java中与if else相比三元运算符的弊端?

JS(脚本语言)后半部分语句:①if...else②switch:break

三元?运算符与 C# 中的传统 If-else 运算符 [重复]

JavaScript-流程控制(if else三元表达式switch)循环(forwhilecontinue break)

为啥使用三元运算符返回字符串与在等效 if/else 块中返回的代码有很大不同?

不同行为的三元运算符 - if/else 与扩展运算符 (...)