﻿# V810\. Decreased performance\. The 'A' function was called several times with identical arguments\. The result should possibly be saved to a temporary variable, which then could be used while calling the 'B' function\.

Анализатор обнаружил код, который потенциально можно оптимизировать\. В коде присутствует вызов функции, которой в качестве аргументов передаются несколько вызовов одной и той же  функции с одинаковыми аргументами\. 

Рассмотрим пример:

```cpp
....
init(cos(-roty), sin(-roty),
     -sin(-roty), cos(-roty));
....
```

Вызов такой функции может работать медленно и эффект будет усиливаться, если этот код находится внутри цикла, то тогда код стоит переписать\. Например, можно создать временную переменную\. Рассмотрим вариант такого кода: 

```cpp
....
double cos_r = cos(-roty);
double sin_r = sin(-roty);
init(cos_r, sin_r, -sin_r, cos_r);
....
```

Конечно, так изменить код можно не всегда\. И тем более, не всегда такой рефакторинг может дать выигрыш в производительности\.  Однако иногда такие оптимизации могут быть весьма полезны\.