Производительность кода при добавлении и последующем сравнении значений - PullRequest
0 голосов
/ 13 июля 2020

Проблема в том, что я должен сложить два числа, а затем проделать с этой суммой 3 операции. Так что либо я добавляю их обоих и помещаю их значение в одну переменную и вычисляю операции, либо повторно добавляю как (a + b

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

или

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

1 Ответ

0 голосов
/ 13 июля 2020

Это зависит от контекста. Если k и d оказываются константами времени компиляции, компилятор может просто заменить k+d суммой, поэтому не имеет значения, сколько раз вы напишете k+d. Кроме того, если вторая форма окажется быстрее и переменная sum не ускользнет из функции (не будет возвращена или использована в качестве параметра для других функций), компилятор может заменить sum на k+d, и снова он сделает нет разницы. Оптимизация компилятора обычно довольно хороша, поэтому я не думаю, что вам стоит об этом беспокоиться. константы времени, так как суммы будут оптимизированы) и настройте, если эта часть может оказаться узким местом.

...