UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
AnalyticsPerfTracker.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "Misc/Build.h"
6
8#define ANALYTICS_PERF_TRACKING_ENABLED !UE_BUILD_SHIPPING
9#if ANALYTICS_PERF_TRACKING_ENABLED
10
11#include "CoreMinimal.h"
12#include "Containers/Ticker.h"
14#include "Misc/Paths.h"
15#include "Misc/LazySingleton.h"
16#include "HAL/PlatformTime.h"
17
20{
22
24 void RecordFlush(uint64 Bytes, uint64 NumEvents, double TimeSec);
25
26 bool IsEnabled() const;
27
28 void SetRunID(const FString& InRunID);
29
30private:
32 virtual bool Tick(float DeltaTime) override;
33
35 bool WindowExpired(double Now);
36
38 void ResetWindow(double Now);
39
41 FOutputDeviceFile LogFile{ *FPaths::Combine(*FPaths::ProjectSavedDir(), TEXT("AnalyticsTiming.csv")) };
42 FString StartDate;
43 FString CL;
44 FString RunID = FGuid().ToString().ToLower();
45 // Window tracking data
46 double LastSubmitTime = 0.0;
47 double TimeThisWindow = 0.0;
48 uint64 BytesThisWindow = 0;
49 uint64 NumEventsThisWindow = 0;
50 int FlushesThisWindow = 0;
51 int FramesThisWindow = 0;
52 // time when the first measurement was made.
53 double StartTime = FPlatformTime::Seconds();
55 bool bEnabled = false;
56};
57
59ANALYTICSET_API void SetAnayticsETPerfTrackingRunID(const FString& RunID);
60
63
66
67#define ANALYTICS_FLUSH_TRACKING_BEGIN() double FlushStartTime = FPlatformTime::Seconds()
68#define ANALYTICS_FLUSH_TRACKING_END(NumBytes, NumEvents) GetAnalyticsPerfTracker().RecordFlush(NumBytes, NumEvents, FPlatformTime::Seconds() - FlushStartTime)
69
70#else
71
72#define ANALYTICS_FLUSH_TRACKING_BEGIN(...)
73#define ANALYTICS_FLUSH_TRACKING_END(...)
74
75#endif
ANALYTICSET_API void TearDownAnalyticsPerfTracker()
Definition AnalyticsPerfTracker.cpp:107
ANALYTICSET_API FAnalyticsPerfTracker & GetAnalyticsPerfTracker()
Definition AnalyticsPerfTracker.cpp:102
ANALYTICSET_API void SetAnayticsETPerfTrackingRunID(const FString &RunID)
Definition AnalyticsPerfTracker.cpp:97
#define TEXT(x)
Definition Platform.h:1272
FPlatformTypes::uint64 uint64
A 64-bit unsigned integer.
Definition Platform.h:1117
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
Definition OutputDeviceFile.h:109
static UE_FORCEINLINE_HINT FString Combine(PathTypes &&... InPaths)
Definition Paths.h:737
static CORE_API const FString & ProjectSavedDir()
Definition Paths.cpp:496
Definition Ticker.h:137
Definition AnalyticsPerfTracker.h:20
void RecordFlush(uint64 Bytes, uint64 NumEvents, double TimeSec)
Definition AnalyticsPerfTracker.cpp:24
void SetRunID(const FString &InRunID)
Definition AnalyticsPerfTracker.cpp:40
bool IsEnabled() const
Definition AnalyticsPerfTracker.cpp:35
FAnalyticsPerfTracker()
Definition AnalyticsPerfTracker.cpp:11
static double Seconds()
Definition AndroidPlatformTime.h:20
Definition Guid.h:109
FString ToString(EGuidFormats Format=EGuidFormats::Digits) const
Definition Guid.h:329