Why UE 5.5 actor serialization become so slow?

In 5.5, the serialization of an actor is hundreds of times slower compared to 5.3. I have a scene with 100 actors with kinda limited saved data (200 bytes each). In 5.3 applying serialization for those actors took few miliseconds. Now the same operation takes 2 minutes!

Code for serialization:

void UMainFunctionLibrary::ApplySerialization(AActor* Actor, const TArray<uint8>& Data)
{
	if (Data.Num() <= 0 || !IsValid(Actor))
		return;

	FMemoryReader ActorReader(Data, true);
	FObjectAndNameAsStringProxyArchive Archive(ActorReader, true);
	
	ActorReader.SetIsLoading(true);

	Actor->Serialize(Archive);
}

TArray<uint8> UMainFunctionLibrary::SerializeActor(AActor* Actor)
{
	TArray<uint8> OutSerializedData;
	if (Actor == nullptr)
		return OutSerializedData;
	FMemoryWriter Writer(OutSerializedData, true);
	FObjectAndNameAsStringProxyArchive Archive(Writer, true);
	Writer.SetIsSaving(true);
	Archive.ArIsSaveGame = true;
	Actor->Serialize(Archive);

	return OutSerializedData;
}

Did UE 5.5 change how it saves data, or what? Loading games from a save file can’t take several minutes, so this is a game-breaking issue.

The problem was that actors got filled with a data from previous engine version. For some reasons this generates some additional overload and completely kills the performance.

Thanks for the information, trying to load save games and saw performance tank (was old data!)

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.