How to optimize the process of respawning a Breakable Actor?

Breakable Actor only has GeometryCollection Component.
When Character is attacking, Character’s Field System is activated and Breakable Actor is broken.
OnBreakEvent → SetCollisionResponse and Respawn using lambda function.
When Breakable actor is respanwed, frame drop occurs.
I think, this Breakable actor has a lot of fragments(51 fragments currently) :sweat_smile:
so when this actor destroyed and respawn, it seems to affect the frame.
but I want to put a lot of these actors.
So I want to know how to efficiently respawn breakable actor.

void ABreakableItem::OnBreakEvent(const FChaosBreakEvent& BreakEvent)
{
	if (bIsDestructed)
	{
		return;
	}

	GeometryCollection->EnableClustering = false;
	GeometryCollection->SetCollisionResponseToChannel(ECollisionChannel::ECC_Pawn, ECollisionResponse::ECR_Ignore);
	GeometryCollection->OnActorEnableCollisionChanged();

	const float respawnTime = RespawnTime.X * 60 + RespawnTime.Y + DestroyDelayTime;
	Respawn(respawnTime);
	bIsDestructed = true;
}

void ABreakableItem::Respawn(float DelayTime)
{
	FTimerHandle DelayTimerHandle;
	GetWorld()->GetTimerManager().SetTimer(DelayTimerHandle, FTimerDelegate::CreateLambda([&]()
		{
			if (bCanRespawn)
			{
				FActorSpawnParameters spawnParams;
				spawnParams.SpawnCollisionHandlingOverride = ESpawnActorCollisionHandlingMethod::AlwaysSpawn;
				FTransform transform = GetActorTransform();
				transform.SetLocation(SpawnLocation);
				GetWorld()->SpawnActor<ABreakableItem>(GetClass(), transform, spawnParams);
			}
			Destroy();
		}), DelayTime, false);
}