﻿# V819\. Decreased performance\. Memory is allocated and released multiple times inside the loop body\.

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

Рассмотрим пример неэффективного кода:

```cpp
for (int i = 0; i < N; i++)
{
  int *arr = new int[1024 * 1024];
  SetValues(arr);
  val[i] = GetP(arr);
  delete [] arr;
}
```

Здесь можно вынести выделение и освобождение памяти из тела цикла\.

Улучшенный вариант кода:

```cpp
int *arr = new int[1024 * 1024];
for (int i = 0; i < N; i++)
{
  SetValues(arr);
  val[i] = GetP(arr);
}
delete [] arr;
```

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