Skip to content

Commit 4aa3ebb

Browse files
committed
Added profiler traces
1 parent 8650569 commit 4aa3ebb

4 files changed

Lines changed: 43 additions & 23 deletions

File tree

Source/SaveExtension/Private/FileAdapter.cpp

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ bool FSaveFile::IsEmpty() const
7878

7979
void FSaveFile::Read(FScopedFileReader& Reader, bool bSkipData)
8080
{
81-
QUICK_SCOPE_CYCLE_COUNTER(STAT_SaveFile_Read);
81+
TRACE_CPUPROFILER_EVENT_SCOPE(FSaveFile::Read);
8282

8383
Empty();
8484
FArchive& Ar = Reader.GetArchive();
@@ -124,7 +124,7 @@ void FSaveFile::Read(FScopedFileReader& Reader, bool bSkipData)
124124
TArray<uint8> CompressedDataBytes;
125125
Ar << CompressedDataBytes;
126126

127-
QUICK_SCOPE_CYCLE_COUNTER(STAT_SaveFile_Decompression);
127+
TRACE_CPUPROFILER_EVENT_SCOPE(Decompression);
128128
FArchiveLoadCompressedProxy Decompressor(CompressedDataBytes, NAME_Zlib);
129129
if (!Decompressor.GetError())
130130
{
@@ -144,7 +144,8 @@ void FSaveFile::Read(FScopedFileReader& Reader, bool bSkipData)
144144

145145
void FSaveFile::Write(FScopedFileWriter& Writer, bool bCompressData)
146146
{
147-
QUICK_SCOPE_CYCLE_COUNTER(STAT_SaveFile_Write);
147+
TRACE_CPUPROFILER_EVENT_SCOPE(FSaveFile::Write);
148+
148149
bIsDataCompressed = bCompressData;
149150
FArchive& Ar = Writer.GetArchive();
150151

@@ -168,7 +169,7 @@ void FSaveFile::Write(FScopedFileWriter& Writer, bool bCompressData)
168169
{
169170
TArray<uint8> CompressedDataBytes;
170171
{ // Compression
171-
QUICK_SCOPE_CYCLE_COUNTER(STAT_SaveFile_Compression);
172+
TRACE_CPUPROFILER_EVENT_SCOPE(Compression);
172173
// Compress Object data
173174
FArchiveSaveCompressedProxy Compressor(CompressedDataBytes, NAME_Zlib);
174175
Compressor << DataBytes;
@@ -186,7 +187,7 @@ void FSaveFile::Write(FScopedFileWriter& Writer, bool bCompressData)
186187

187188
void FSaveFile::SerializeInfo(USlotInfo* SlotInfo)
188189
{
189-
QUICK_SCOPE_CYCLE_COUNTER(STAT_SaveFile_SerializeInfo);
190+
TRACE_CPUPROFILER_EVENT_SCOPE(FSaveFile::SerializeInfo);
190191
check(SlotInfo);
191192
InfoBytes.Reset();
192193
InfoClassName = SlotInfo->GetClass()->GetPathName();
@@ -197,7 +198,7 @@ void FSaveFile::SerializeInfo(USlotInfo* SlotInfo)
197198
}
198199
void FSaveFile::SerializeData(USlotData* SlotData)
199200
{
200-
QUICK_SCOPE_CYCLE_COUNTER(STAT_SaveFile_SerializeData);
201+
TRACE_CPUPROFILER_EVENT_SCOPE(FSaveFile::SerializeData);
201202
check(SlotData);
202203
DataBytes.Reset();
203204
DataClassName = SlotData->GetClass()->GetPathName();
@@ -209,20 +210,24 @@ void FSaveFile::SerializeData(USlotData* SlotData)
209210

210211
USlotInfo* FSaveFile::CreateAndDeserializeInfo(const UObject* Outer) const
211212
{
213+
TRACE_CPUPROFILER_EVENT_SCOPE(FSaveFile::CreateAndDeserializeInfo);
212214
UObject* Object = nullptr;
213215
FFileAdapter::DeserializeObject(Object, InfoClassName, Outer, InfoBytes);
214216
return Cast<USlotInfo>(Object);
215217
}
216218

217219
USlotData* FSaveFile::CreateAndDeserializeData(const UObject* Outer) const
218220
{
221+
TRACE_CPUPROFILER_EVENT_SCOPE(FSaveFile::CreateAndDeserializeData);
219222
UObject* Object = nullptr;
220223
FFileAdapter::DeserializeObject(Object, DataClassName, Outer, DataBytes);
221224
return Cast<USlotData>(Object);
222225
}
223226

224227
bool FFileAdapter::SaveFile(FStringView SlotName, USlotInfo* Info, USlotData* Data, const bool bUseCompression)
225228
{
229+
TRACE_CPUPROFILER_EVENT_SCOPE(FFileAdapter::SaveFile);
230+
226231
if (SlotName.IsEmpty())
227232
{
228233
return false;
@@ -234,8 +239,6 @@ bool FFileAdapter::SaveFile(FStringView SlotName, USlotInfo* Info, USlotData* Da
234239
return false;
235240
}
236241

237-
QUICK_SCOPE_CYCLE_COUNTER(STAT_FileAdapter_SaveFile);
238-
239242
FScopedFileWriter FileWriter(GetSlotPath(SlotName));
240243
if(FileWriter.IsValid())
241244
{
@@ -250,7 +253,7 @@ bool FFileAdapter::SaveFile(FStringView SlotName, USlotInfo* Info, USlotData* Da
250253

251254
bool FFileAdapter::LoadFile(FStringView SlotName, USlotInfo*& Info, USlotData*& Data, bool bLoadData, const UObject* Outer)
252255
{
253-
QUICK_SCOPE_CYCLE_COUNTER(STAT_FileAdapter_LoadFile);
256+
TRACE_CPUPROFILER_EVENT_SCOPE(FFileAdapter::LoadFile);
254257

255258
FScopedFileReader Reader(GetSlotPath(SlotName));
256259
if(Reader.IsValid())

Source/SaveExtension/Private/SaveManager.cpp

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -401,7 +401,10 @@ void USaveManager::UnsubscribeFromEvents(const TScriptInterface<ISaveExtensionIn
401401

402402
void USaveManager::OnSaveBegan(const FSELevelFilter& Filter)
403403
{
404-
IterateSubscribedInterfaces([&Filter](auto* Object) {
404+
TRACE_CPUPROFILER_EVENT_SCOPE(USaveManager::OnSaveBegan);
405+
406+
IterateSubscribedInterfaces([&Filter](auto* Object)
407+
{
405408
check(Object->template Implements<USaveExtensionInterface>());
406409

407410
// C++ event
@@ -415,7 +418,10 @@ void USaveManager::OnSaveBegan(const FSELevelFilter& Filter)
415418

416419
void USaveManager::OnSaveFinished(const FSELevelFilter& Filter, const bool bError)
417420
{
418-
IterateSubscribedInterfaces([&Filter, bError](auto* Object) {
421+
TRACE_CPUPROFILER_EVENT_SCOPE(USaveManager::OnSaveFinished);
422+
423+
IterateSubscribedInterfaces([&Filter, bError](auto* Object)
424+
{
419425
check(Object->template Implements<USaveExtensionInterface>());
420426

421427
// C++ event
@@ -434,7 +440,10 @@ void USaveManager::OnSaveFinished(const FSELevelFilter& Filter, const bool bErro
434440

435441
void USaveManager::OnLoadBegan(const FSELevelFilter& Filter)
436442
{
437-
IterateSubscribedInterfaces([&Filter](auto* Object) {
443+
TRACE_CPUPROFILER_EVENT_SCOPE(USaveManager::OnLoadBegan);
444+
445+
IterateSubscribedInterfaces([&Filter](auto* Object)
446+
{
438447
check(Object->template Implements<USaveExtensionInterface>());
439448

440449
// C++ event
@@ -448,7 +457,10 @@ void USaveManager::OnLoadBegan(const FSELevelFilter& Filter)
448457

449458
void USaveManager::OnLoadFinished(const FSELevelFilter& Filter, const bool bError)
450459
{
451-
IterateSubscribedInterfaces([&Filter, bError](auto* Object) {
460+
TRACE_CPUPROFILER_EVENT_SCOPE(USaveManager::OnLoadFinished);
461+
462+
IterateSubscribedInterfaces([&Filter, bError](auto* Object)
463+
{
452464
check(Object->template Implements<USaveExtensionInterface>());
453465

454466
// C++ event

Source/SaveExtension/Private/Serialization/MTTask_SerializeActors.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,7 @@ bool FMTTask_SerializeActors::SerializeActor(const AActor* Actor, FActorRecord&
101101
SerializeActorComponents(Actor, Record, 1);
102102
}
103103

104+
TRACE_CPUPROFILER_EVENT_SCOPE(Serialize);
104105
FMemoryWriter MemoryWriter(Record.Data, true);
105106
FSEArchive Archive(MemoryWriter, false);
106107
const_cast<AActor*>(Actor)->Serialize(Archive);

Source/SaveExtension/Private/Serialization/SlotDataTask_Loader.cpp

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ namespace Loader
4545

4646
void USlotDataTask_Loader::OnStart()
4747
{
48+
TRACE_CPUPROFILER_EVENT_SCOPE(USlotDataTask_Loader::OnStart);
4849
USaveManager* Manager = GetManager();
4950

5051
SELog(Preset, "Loading from Slot " + SlotName.ToString());
@@ -93,6 +94,7 @@ void USlotDataTask_Loader::OnStart()
9394

9495
void USlotDataTask_Loader::Tick(float DeltaTime)
9596
{
97+
TRACE_CPUPROFILER_EVENT_SCOPE(USlotDataTask_Loader::Tick);
9698
switch(LoadState)
9799
{
98100
case ELoadDataTaskState::Deserializing:
@@ -112,6 +114,7 @@ void USlotDataTask_Loader::Tick(float DeltaTime)
112114

113115
void USlotDataTask_Loader::OnFinish(bool bSuccess)
114116
{
117+
TRACE_CPUPROFILER_EVENT_SCOPE(USlotDataTask_Loader::OnFinish);
115118
if (bSuccess)
116119
{
117120
SELog(Preset, "Finished Loading", FColor::Green);
@@ -166,6 +169,7 @@ void USlotDataTask_Loader::OnMapLoaded()
166169

167170
void USlotDataTask_Loader::StartDeserialization()
168171
{
172+
TRACE_CPUPROFILER_EVENT_SCOPE(USlotDataTask_Loader::StartDeserialization);
169173
check(NewSlotInfo);
170174

171175
LoadState = ELoadDataTaskState::Deserializing;
@@ -215,6 +219,7 @@ USlotData* USlotDataTask_Loader::GetLoadedData() const
215219

216220
void USlotDataTask_Loader::BeforeDeserialize()
217221
{
222+
TRACE_CPUPROFILER_EVENT_SCOPE(USlotDataTask_Loader::BeforeDeserialize);
218223
UWorld* World = GetWorld();
219224

220225
// Set current game time to the saved value
@@ -228,7 +233,7 @@ void USlotDataTask_Loader::BeforeDeserialize()
228233

229234
void USlotDataTask_Loader::DeserializeSync()
230235
{
231-
QUICK_SCOPE_CYCLE_COUNTER(STAT_Loading_DeserializeSync);
236+
TRACE_CPUPROFILER_EVENT_SCOPE(USlotDataTask_Loader::DeserializeSync);
232237

233238
const UWorld* World = GetWorld();
234239
check(World);
@@ -256,11 +261,11 @@ void USlotDataTask_Loader::DeserializeSync()
256261

257262
void USlotDataTask_Loader::DeserializeLevelSync(const ULevel* Level, const ULevelStreaming* StreamingLevel)
258263
{
264+
TRACE_CPUPROFILER_EVENT_SCOPE(USlotDataTask_Loader::DeserializeLevelSync);
265+
259266
if (!IsValid(Level))
260267
return;
261268

262-
QUICK_SCOPE_CYCLE_COUNTER(STAT_Loading_DeserializeLevelSync);
263-
264269
const FName LevelName = StreamingLevel ? StreamingLevel->GetWorldAssetPackageFName() : FPersistentLevelRecord::PersistentName;
265270
SELog(Preset, "Level '" + LevelName.ToString() + "'", FColor::Green, false, 1);
266271

@@ -373,7 +378,7 @@ void USlotDataTask_Loader::DeserializeASyncLoop(float StartMS)
373378

374379
void USlotDataTask_Loader::PrepareLevel(const ULevel* Level, FLevelRecord& LevelRecord)
375380
{
376-
QUICK_SCOPE_CYCLE_COUNTER(STAT_Loading_PrepareLevel);
381+
TRACE_CPUPROFILER_EVENT_SCOPE(USlotDataTask_Loader::PrepareLevel);
377382

378383
const auto& Filter = GetLevelFilter(LevelRecord);
379384

@@ -424,7 +429,7 @@ void USlotDataTask_Loader::FinishedDeserializing()
424429

425430
void USlotDataTask_Loader::PrepareAllLevels()
426431
{
427-
QUICK_SCOPE_CYCLE_COUNTER(STAT_Loading_PrepareAllLevels);
432+
TRACE_CPUPROFILER_EVENT_SCOPE(USlotDataTask_Loader::PrepareAllLevels);
428433

429434
const UWorld* World = GetWorld();
430435
check(World);
@@ -449,7 +454,7 @@ void USlotDataTask_Loader::PrepareAllLevels()
449454

450455
void USlotDataTask_Loader::RespawnActors(const TArray<FActorRecord*>& Records, const ULevel* Level)
451456
{
452-
QUICK_SCOPE_CYCLE_COUNTER(STAT_Loading_RespawnActors);
457+
TRACE_CPUPROFILER_EVENT_SCOPE(USlotDataTask_Loader::RespawnActors);
453458

454459
FActorSpawnParameters SpawnInfo{};
455460
SpawnInfo.OverrideLevel = const_cast<ULevel*>(Level);
@@ -470,7 +475,7 @@ void USlotDataTask_Loader::RespawnActors(const TArray<FActorRecord*>& Records, c
470475

471476
void USlotDataTask_Loader::DeserializeLevel_Actor(AActor* const Actor, const FLevelRecord& LevelRecord, const FSELevelFilter& Filter)
472477
{
473-
QUICK_SCOPE_CYCLE_COUNTER(STAT_Loading_DeserializeLevel_Actor);
478+
TRACE_CPUPROFILER_EVENT_SCOPE(USlotDataTask_Loader::DeserializeLevel_Actor);
474479

475480
// Find the record
476481
const FActorRecord* const Record = LevelRecord.Actors.FindByKey(Actor);
@@ -502,7 +507,7 @@ void USlotDataTask_Loader::DeserializeGameInstance()
502507

503508
bool USlotDataTask_Loader::DeserializeActor(AActor* Actor, const FActorRecord& Record, const FSELevelFilter& Filter)
504509
{
505-
QUICK_SCOPE_CYCLE_COUNTER(STAT_Loading_DeserializeActor);
510+
TRACE_CPUPROFILER_EVENT_SCOPE(USlotDataTask_Loader::DeserializeActor);
506511

507512
// Always load saved tags
508513
Actor->Tags = Record.Tags;
@@ -532,7 +537,6 @@ bool USlotDataTask_Loader::DeserializeActor(AActor* Actor, const FActorRecord& R
532537
DeserializeActorComponents(Actor, Record, Filter, 2);
533538

534539
{
535-
QUICK_SCOPE_CYCLE_COUNTER(STAT_Loading_DataReader);
536540
//Serialize from Record Data
537541
FMemoryReader MemoryReader(Record.Data, true);
538542
FSEArchive Archive(MemoryReader, false);
@@ -546,7 +550,7 @@ void USlotDataTask_Loader::DeserializeActorComponents(AActor* Actor, const FActo
546550
{
547551
if (Filter.bStoreComponents)
548552
{
549-
QUICK_SCOPE_CYCLE_COUNTER(STAT_Loading_DeserializeActorComponents);
553+
TRACE_CPUPROFILER_EVENT_SCOPE(UUSlotDataTask_Loader::DeserializeActorComponents);
550554

551555
const TSet<UActorComponent*>& Components = Actor->GetComponents();
552556
for (auto* Component : Components)

0 commit comments

Comments
 (0)