Resource->ReadPixels is very slow... faster way?

I have 31 2D scene capture components running. Getting the resource from the rendering thread boost my framerate from 11.3 to 11.7 and reduce RAM usage from 9.2 to 8.1.

FTextureRenderTargetResource* resource;

ENQUEUE_RENDER_COMMAND(GetResource)([this, &resource](FRHICommandListImmediate& CommandList) { resource = TextureTarget->GetRenderTargetResource(); });

static TArray<FColor> colors;

FlushRenderingCommands();

if (resource) resource->ReadPixels(colors);