【问题标题】:Performance of code while adding and then comparing values添加然后比较值时的代码性能
【发布时间】:2020-11-02 05:53:40
【问题描述】:

这里的问题是:我必须将两个数字相加,然后用这个和进行 3 次运算。因此,要么我将它们都添加并将它们的值放入一个变量并计算操作,要么我在执行任何操作时重新添加 like(a+b

 val sum  = k+d
 if(sum<=b && sum>spend){
    spend = sum
 }

或者,

if(k+d<=b && k+d>spend){
   spend = k+d
}

【问题讨论】:

  • 你做过性能测试吗?这会告诉你哪个更快 - 或者更有可能表明差异是微不足道的。
  • 我在哪里可以做到这一点?

标签: performance kotlin memory-management


【解决方案1】:

这取决于上下文。如果kd 恰好是编译时常量,那么编译器可以将k+d 替换为总和,这样您编写k+d 的次数就无关紧要了。此外,如果第二种形式更快,并且sum 变量不会转义函数(不返回或用作其他函数的参数),那么编译器可以用k+d 替换sum,它会再次使没有不同。编译器优化通常非常好,所以我认为您不必担心。

由于第一个更清晰,您应该这样做,但您始终可以进行基准测试(确保不要使用编译时常量,因为总和会被优化掉)并调整该部分是否会变成成为瓶颈。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-09-02
    • 2016-04-27
    • 2015-12-28
    • 2010-12-02
    • 2020-04-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多