Our website uses cookies to enhance your browsing experience.
Accept
to the top
>
>
>
V819. Decreased performance. Memory...
menu mobile close menu
Additional information
toggle menu Contents

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

Jun 07 2017

The analyzer has detected a construct that could be optimized. A memory block of the same size is allocated and released multiple times inside a loop body. To increase the program's performance, take the code performing memory allocation and release out of the loop into a separate code block.

Consider the following example:

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

Memory allocation and release can be taken out of the loop and implemented as a separate code block.

Improved code:

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

Similarly, the analyzer may suggest optimizing code where memory is allocated using function 'malloc' and the like.